题名:Summary Ranges
难度:Medium
题目描述:
代码如下:
class Solution {
public:
vector<string> summaryRanges(vector<int>& nums) {
int n = nums.size();
vector<string> ranges;
if(n == 0){
return ranges;
}
for(int i = 0; i < n;){
int begin = i, end = i;
while(end + 1 < n && nums[end+1] == nums[end] + 1){
end++;
}
if(end > begin){
ranges.push_back(to_string(nums[begin]) + "->" +to_string(nums[end]));
}
else{
ranges.push_back(to_string(nums[begin]));
}
i = end + 1;
}
return ranges;
}
};
个人体会:
很中规中矩的一道题,因为ranges只需要两端的数字,判断是否连续也很简单,因此只要设置两个变量保存范围两端的数字即可。C++中int类型转化为string类型用to_string()函数。