题目描述
给定一个无重复元素的有序整数数组,返回数组区间范围的汇总。
示例 1:
输入: [0,1,2,4,5,7]
输出: ["0->2","4->5","7"]
解释: 0,1,2 可组成一个连续的区间; 4,5 可组成一个连续的区间。
示例 2:
输入: [0,2,3,4,6,8,9]
输出: ["0","2->4","6","8->9"]
解释: 2,3,4 可组成一个连续的区间; 8,9 可组成一个连续的区间。
解答
并不难的一道题,可是自己做了很长时间。编程还是得多练才能熟啊。
class Solution {
public:
vector<string> summaryRanges(vector<int>& nums) {
vector<string> res;
int start=0;
int i=0;
while(i<nums.size())
{
if(i+1<nums.size() && nums[i]+1==nums[i+1])
{
++i;
}
else if(i-start>0)
{
string temp;
temp+=to_string(nums[start]);
temp+="->";
temp+=to_string(nums[i]);
res.push_back(temp);
start=i+1;
i++;
}
else
{
string temp;
temp+=to_string(nums[i]);
res.push_back(temp);
start=i+1;
++i;
}
}
return res;
}
};