题目:
Given a sorted integer array without duplicates, return the summary of its ranges.
For example, given [0,1,2,4,5,7], return [“0->2”,”4->5”,”7”].
Tags Array
Similar Problems (M) Missing Ranges
分析:
注意:nums为空的情况。
代码:
class Solution {
public:
vector<string> summaryRanges(vector<int>& nums) {
vector<string> strs;
int size = nums.size();
if(size == 0)
return strs;
char t[256];
int firstNum = nums[0];
int lastNum = firstNum;
int i = 1;
int j = 0;
while(i<size){
if(nums[i]==lastNum+1)
lastNum = nums[i++];
else{
if(firstNum==lastNum)
sprintf(t, "%d", firstNum);
else
sprintf(t, "%d->%d", firstNum,lastNum);
strs.push_back(t);
firstNum = lastNum = nums[i++];
}
}
if(firstNum==lastNum)
sprintf(t, "%d", firstNum);
else
sprintf(t, "%d->%d", firstNum,lastNum);
strs.push_back(t);
return strs;
}
};