Leetcode 163. Missing Ranges (Medium) (cpp)
Tag: Array, Sort
Difficulty: Medium
这是一道locked题目,给评论个“赞”呗?
/*
163. Missing Ranges (Medium)
Given a sorted integer array where the range of elements are in the inclusive range [lower, upper], return its missing ranges.
For example, given [0, 1, 3, 50, 75], lower = 0 and upper = 99, return ["2", "4->49", "51->74", "76->99"].
*/
class Solution {
public:
vector<string> findMissingRanges(vector<int>& nums, int lower, int upper) {
vector<string> res;
for (int i = 0; i < nums.size(); i++) {
if (lower < nums[i]) {
res.push_back(range(lower, nums[i] - 1));
}
lower = nums[i] + 1;
}
if (nums.empty() || nums.back() < upper) {
res.push_back(range(lower, upper));
}
return res;
}
private:
string range(int lower, int upper) {
return lower == upper ? to_string(lower) : to_string(lower) + "->" + to_string(upper);
}
};