# Leetcode 163 - Missing Ranges [Easy] (Premium) ## Description You are given an inclusive range `[lower, upper]` and a sorted unique integer array nums, where all elements are within the inclusive range. A number `x` is considered missing if `x` is in the range `[lower, upper]` and `x` is not in `nums`. Return the shortest sorted list of ranges that exactly covers all the missing numbers. That is, no element of `nums` is included in any of the ranges, and each missing number is covered by one of the ranges. ### Example 1: ``` Input: nums = [0,1,3,50,75], lower = 0, upper = 99 Output: [[2,2],[4,49],[51,74],[76,99]] Explanation: The ranges are: [2,2] [4,49] [51,74] [76,99] ``` ### Example 2: ``` Input: nums = [-1], lower = -1, upper = -1 Output: [] Explanation: There are no missing ranges since there are no missing numbers. ``` ### Constraints: * `-109 <= lower <= upper <= 109` * `0 <= nums.length <= 100` * `lower <= nums[i] <= upper` * `All the values of nums are unique.` ## Solution * insert the lower bound (`lower-1`) and upper bound (`upper+1`) to nums * compute the each range by subtracting from the previous element ### C++ ``` vector<vector<int>> findMissingRanges(vector<int>& nums, int lower, int upper) { vector<vector<int>> res; nums.insert(nums.begin(), lower-1); nums.push_back(upper+1); for(int i = 1; i < nums.size(); i++){ if((nums[i] - nums[i-1]) > 1){ res.push_back({nums[i-1]+1, nums[i]-1}); } } return res; } ```