题目:输出一组排好序的int数组的连续范围,
分析:找出连续的地方分段输出即可。
答案:
class Solution {
public:
string formatRange(int startn,int endn){
char buffer[32];
if (startn == endn){
sprintf(buffer,"%d",startn);
}else{
sprintf(buffer,"%d->%d",startn,endn);
}
string res = buffer;
return res;
}
vector<string> summaryRanges(vector<int>& nums) {
vector<string> res;
if (nums.size()<1)
return res;
int startn = nums[0];
int endn = nums[0];
for(int i = 1; i < nums.size(); i++){
if (nums[i] == (endn +1)){
endn = nums[i];
}else{
res.push_back(formatRange(startn,endn));
startn = nums[i];
endn = nums[i];
}
}
res.push_back(formatRange(startn,endn));
return res;
}
};