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> ret;
for (int i=0; i<nums.size();) {
int begin = i;
int end = i;
while ((i+1 < nums.size()) && (nums[i]+1 == nums[i+1])) {
i++;
end = i;
}
if (begin == end) {
ret.push_back(to_string(nums[begin]));
}
else {
string range = to_string(nums[begin]) + "->" + to_string(nums[end]);
ret.push_back(range);
}
i++;
}
return ret;
}
};