题目描述:
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;
}
};
本文深入探讨了在已排序整数数组中查找指定范围内缺失区间的算法实现。通过实例演示,详细解释了如何使用C++代码高效地找出数组[0,1,3,50,75]在范围[0,99]内的缺失区间[24->4951->7476->99]。文章提供了完整的代码示例和逻辑解析。
659

被折叠的 条评论
为什么被折叠?



