class Solution {
public List<String> findMissingRanges(int[] nums, int lower, int upper) {
List<String> res = new ArrayList<>();
for (int num : nums) {
if (num == Integer.MIN_VALUE) {
lower = num + 1;
continue;
}
if (lower < num - 1) {
res.add(Integer.toString(lower) + "->" + Integer.toString(num - 1));
} else if (lower == num - 1) {
res.add(Integer.toString(lower));
}
if (num == Integer.MAX_VALUE) {
return res;
}
lower = num + 1;
}
if (lower < upper) {
res.add(Integer.toString(lower) + "->" + Integer.toString(upper));
} else if (lower == upper) {
res.add(Integer.toString(lower));
}
return res;
}
}