题目描述:
Given a sorted integer array nums, where the range of elements are in the inclusive range [lower, upper], return its missing ranges.
Example:
Input: nums = [0, 1, 3, 50, 75], lower = 0 and upper = 99, Output: ["2", "4->49", "51->74", "76->99"]
class Solution {
public:
vector<string> findMissingRanges(vector<int>& nums, int lower, int upper) {
vector<string> result;
int i=0;
long long low=lower;
long long up=upper;
while(i<nums.size()&&low<=up)
{
long long x=min((long long)nums[i],up);
if(low<x)
{
if(low<x-1) result.push_back(to_string(low)+"->"+to_string(x-1));
else result.push_back(to_string(low));
low=x+1;
}
else if(low==x) low++;
i++;
}
if(low<=up) // 不要忘了最后upper可能还是大于等于lower
{
if(low<up) result.push_back(to_string(low)+"->"+to_string(up));
else result.push_back(to_string(low));
}
return result;
}
};