163. Missing Ranges

66 阅读1分钟

image.png

方法

class Solution {
    public List<List<Integer>> findMissingRanges(int[] nums, int lower, int upper) {
        List<List<Integer>> res = new ArrayList<>();
        if (nums.length == 0) {
            List<Integer> list = new ArrayList<>();
            list.add(lower);
            list.add(upper);
            res.add(list);
            return res;
        }
        if (lower < nums[0]) {
            List<Integer> list = new ArrayList<>();
            list.add(lower);
            list.add(nums[0] - 1);
            res.add(list);
        }
        for (int i = 0; i < nums.length - 1; i++) {
            int start = nums[i];
            int end = nums[i + 1];
            if (end - start > 1) {
                List<Integer> list = new ArrayList<>();
                list.add(start + 1);
                list.add(end - 1);
                res.add(list);
            }
        }
        
        if (upper > nums[nums.length - 1]) {
            List<Integer> list = new ArrayList<>();
            list.add(nums[nums.length - 1] + 1);
            list.add(upper);
            res.add(list);
        }
        return res;
      
    }
}