-
Notifications
You must be signed in to change notification settings - Fork 0
Missing range
Tim_Gao edited this page Sep 16, 2016
·
1 revision
public class Solution {
private void addInterval(ArrayList<String> res, int s, int e){
if(s == e){
res.add(String.valueOf(s));
} else {
res.add(String.valueOf(s) + "->" + String.valueOf(e));
}
}
public List<String> findMissingRanges(int[] nums, int lower, int upper) {
ArrayList<String> res = new ArrayList<>();
if (nums.length == 0){
addInterval(res, lower, upper);
return res;
}
int prev = lower;
int p = 0;
while (p <= nums.length){
if(p == 0){
if(prev != nums[p]){
addInterval(res, prev, nums[p]-1);
}
} else if (p == nums.length){
if (prev + 1 <= upper){
addInterval(res, prev+1, upper);
}
} else {
if(prev+1 < nums[p]){
addInterval(res, prev+1, nums[p]-1);
}
}
if (p<nums.length )
prev = nums[p];
++p;
}
return res;
}
}