【LeetCode-228】Summary Ranges(C++)

来源:互联网 发布:两列数据查找相同项 编辑:程序博客网 时间:2024/05/21 09:52

题目要求:给出一个已经排好序的整型数组,然后将这个数组中连续的整数转化为区间形式,[0,1,2,4,5,7]---> ["0->2","4->5","7"]

问题解答:只需要遍历一次数组即可。

class Solution {public:    vector<string> summaryRanges(vector<int>& nums) {        int n=nums.size();        int left=0;        vector<string> result;        while(left<n){            string tem;            int tag=0;            tem+=convert(nums[left]);            while(left<n-1&&nums[left+1]==nums[left]+1){                tag=1;                left++;            }//用while循环判断数组中相邻的整数值是否相邻。当碰到第一个不相邻的数的时候跳出while循环。            if(tag==1){                tem=tem+"->"+convert(nums[left]);            }//如果tag==1,则说明进入了while循环,说明有不止一个整数连续。            left++;            result.push_back(tem);        }        return result;    }private:    string convert(int n){        stringstream ss;        string s;        ss<<n;        ss>>s;        return s;    }//将整数n转化为string类型。};


0 0