Missing Ranges
Given a sorted integer array where the range of elements are in the inclusive range [lower, upper], return its missing ranges.
For example, given [0, 1, 3, 50, 75], lower = 0 and upper = 99, return ["2", "4->49", "51->74", "76->99"].
class Solution {
public List<String> findMissingRanges(int[] nums, int lower, int upper) {
List<String> result = new ArrayList<>();
long prev = (long)lower - 1;
for (int i = 0; i <= nums.length; i++) {
long current = i == nums.length ? (long)upper + 1 : (long)nums[i];
if (current - prev == 2) {
result.add(String.valueOf(prev + 1));
} else if (current - prev > 2) {
result.add(String.valueOf(prev + 1) + "->" + String.valueOf(current - 1));
}
prev = current;
}
return result;
}
}
Hope this helps,
Michael