diff --git a/solutions/228. Summary Ranges.md b/solutions/228. Summary Ranges.md new file mode 100644 index 0000000..51eb514 --- /dev/null +++ b/solutions/228. Summary Ranges.md @@ -0,0 +1,29 @@ +# [228. Summary Ranges](https://leetcode.com/problems/summary-ranges/) +# 思路 + +题意就是要求找出连续的区间。我们可以用start_i代表每个连续区间的开始下标, +然后不断检查下一个数是不是连续的直到不连续为止,然后就将这个区间的结果push进结果数组,然后更新start_i处理下一个连续区间。 + +# C++ +``` C++ +class Solution { +public: + vector summaryRanges(vector& nums) { + if(nums.empty()) return vector{}; + int n = nums.size(); + vectorres; + int start_i = 0, i = 0; + while(i < n){ + while(i + 1 < n && nums[i] + 1 == nums[i + 1]) i++; + + string out = to_string(nums[start_i]); + if(i != start_i) + out += ("->" + to_string(nums[i])); + res.push_back(out); + + start_i = ++i; + } + return res; + } +}; +```