LeetCode 之 Summary Ranges

来源:互联网 发布:飞常准软件怎么样 编辑:程序博客网 时间:2024/05/29 08:28

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;    }};


0 0