Leetcode 163 Solution
This article provides solution to leetcode question 163 (missing-ranges)
Access this page by simply typing in "lcs 163" in your browser address bar if you have bunnylol configured.
Leetcode Question Link
https://leetcode.com/problems/missing-ranges
Solution
class Solution {
public:
string get_range(int left, int right)
{
if (left == right)
return to_string(left);
else
return to_string(left) + "->" + to_string(right);
}
vector<string> findMissingRanges(vector<int>& nums, int lower, int upper) {
vector<string> res;
if (nums.empty())
{
res.push_back(get_range(lower, upper));
return res;
}
for (int i = 0; i < nums.size(); i++)
{
int left = 0;
int right = nums[i] - 1;
if (i == 0 && nums[i] != lower)
left = lower;
else if (i != 0 && (int64_t)nums[i] > (int64_t)nums[i - 1] + 1)
left = nums[i - 1] + 1;
else
continue;
res.push_back(get_range(left, right));
}
if (nums.back() != upper)
res.push_back(get_range(nums.back() + 1, upper));
return res;
}
};