Skip to content

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;
    }
}

Clone this wiki locally