原题地址:https://leetcode-cn.com/problems/summary-ranges/submissions/
题目描述:
给定一个无重复元素的有序整数数组,返回数组区间范围的汇总。
示例 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> ans;
if(nums.size() == 0)
return ans;
int pre = nums[0];
string str = to_string(nums[0]);
int flag = 0, count = 0;
for(int i = 1; i < nums.size(); i ++){
count ++;
if(nums[i] == pre + count)
continue;
else{
if(count > 1)
str = str + "->" + to_string(pre + count - 1);
ans.push_back(str);
str = to_string(nums[i]);
count = 0;
pre = nums[i];
flag = 0;
}
}
if(count >= 1)
str = str + "->" + to_string(pre + count);
ans.push_back(str);
return ans;
}
};