您的位置:首页 > 其它

LeetCode 之 Summary Ranges

2016-04-11 13:38 477 查看
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"].


由于数组是已经排好序的,所以只需要两个指针,一个指向连续序列的开头,一个指向连续序列的结束,遇到间断就把当前的范围存起来,改变指针的指向,整个数组只需要遍历一次就行了,代码如下:

class Solution {
public:
vector<string> summaryRanges(vector<int>& nums) {
//int a[]=[0,0];
vector<string> ans;
string ans1;
int i=0;int j=0;
if(nums.size()==0) return ans;
while(j<=(nums.size()-1)){
if(j==(nums.size()-1)){
break;
}else if(nums[j+1]==nums[j]+1){
j++;
}else{
if(j==i){
ans1=to_string(nums[i]);
ans.push_back(ans1);
}else{
ans1=to_string(nums[i])+"->"+to_string(nums[j]);
ans.push_back(ans1);
}
j++;
i=j;
}
}
if(j==i){
ans1=to_string(nums[i]);
ans.push_back(ans1);
}else{
ans1=to_string(nums[i])+"->"+to_string(nums[j]);
ans.push_back(ans1);
}
return ans;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: