
难度: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%
近期评论