https://leetcode.com/problems/summary-ranges/
Given a sorted integer array without duplicates, return the summary of its ranges.
Example 1:
Input: [0,1,2,4,5,7] Output: ["0->2","4->5","7"] Explanation: 0,1,2 form a continuous range; 4,5 form a continuous range.
Example 2:
Input: [0,2,3,4,6,8,9] Output: ["0","2->4","6","8->9"] Explanation: 2,3,4 form a continuous range; 8,9 form a continuous range.
算法思路:
注意遍历的边界条件,写完后,再简单测试后,没想到一次就提交过了。
class Solution {
public:
vector<string> summaryRanges(vector<int>& nums) {
vector<string> res;
string s;
int start = 0;
int end;
for (int i = 1, n = nums.size(); i <= n; i++) {
s = "";
end = i - 1;
while (i < n && nums[i] == nums[i - 1] + 1) {
end = i; i++;
}
if (start == end) s = to_string(nums[start]);
else s = to_string(nums[start]) + "->" + to_string(nums[end]);
res.push_back(s);
start = i;
}
return res;
}
};