给定一个升序的数组nums[](不包含重复数),求出数组中数字的范围。例如给定[0,1,2,4,5,7],返回[“0->2”,”4->5”,”7”]。
此题比较容易,只需要设一个计数器cnt,初值为
c++代码如下:
class Solution {
public:
vector<string> summaryRanges(vector<int>& nums) {
vector<string> re;
stringstream s;
if(nums.size() <= 0)
return re;
int i,low=nums[0],cnt = nums[0];
for(i = 1; i < nums.size(); i++)
{
if(cnt + 1 == nums[i])
{
cnt ++;
}
else
{
if(low == cnt)
s << low;
else
s << low << "->" << cnt;
re.push_back(s.str());
low = nums[i];
cnt = nums[i];
s.str("");
}
}
if(low == cnt)
s << low;
else
s << low << "->" <<cnt;
re.push_back(s.str());
return re;
}
};
原文地址:http://blog.csdn.net/jeanphorn/article/details/46649127