leetcode_summary_ranges

难度:Meidum

遍历数组,维持一个start、一个end,查看当前元素与end+1是否相等。相等,则继续;不相等,则push进结果集,重新记下start和end。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
class Solution {
public:
vector<string> summaryRanges(vector<int>& nums) {
vector<string> ret;
if (nums.size() == 0) return ret;
int start = nums[0];
int end = nums[0];
for(int i = 1; i < nums.size(); i++)
{
if(nums[i] == end+1)
{
end = end+1;
}
else
{
string s = (start != end)?(to_string(start)+"->"+to_string(end)):to_string(start);
ret.push_back(s);
start = nums[i];
end = nums[i];
}
}
string s = (start != end)?(to_string(start)+"->"+to_string(end)):to_string(start);
ret.push_back(s);
return ret;
}
};

0ms,8.04%