您的位置:首页 > 其它

228 Summary Range

2015-08-03 23:47 337 查看
//额外声明:我发现不必把做的每一道题都在博客里更新,今后将更新我认为比较有意思的题目

Descroption:

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"].


给定一个排过序的无重复整形数组,返回其连续分组。这个题目标注难度为easy,但我着实耗费了一些时间,最终的代码也不够清晰,我除将把自己的代码列出来外,会再展示一个讨论区里面我认为逻辑清楚的代码作为比较,以供自己不时参考。


下面是我自己的代码:

class Solution {
public:
string buildString(int rangeStart, int rangeEnd) {
string s;

char buffer [33];

sprintf(buffer,"%d",rangeStart);
s.append(buffer);

if (rangeStart != rangeEnd)
{
s.append("->");

sprintf(buffer,"%d",rangeEnd);
s.append(buffer);
}

return s;
}

vector<string> summaryRanges(vector<int>& nums) {
vector<string> o;
int rangeStart = 0;
int rangeEnd = 0;

if (nums.size() != 0)
{
for(int i = 0; i < nums.size(); i++)
{
if(i == nums.size()-1)
{
rangeEnd = i;
string s = buildString(nums[rangeStart],nums[rangeEnd]);
o.push_back(s);
}
else
if((nums[i+1] == nums[i]+1))
{
rangeEnd++;
}
else
{
string s = buildString(nums[rangeStart],nums[rangeEnd]);
o.push_back(s);
rangeStart = i+1;
rangeEnd = i+1;
}
}
}

return o;
}
};


Better Code
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: