leetcode刷题日记——Summary Ranges

来源:互联网 发布:java经典手机游戏 编辑:程序博客网 时间:2024/06/10 00:01
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) {        vector<string> ranges;        if(nums.size()==0) return ranges;        int begin=nums[0];        int end=nums[0];        int index=0;        for(int i=1;i<nums.size();i++){            if(nums[i]==nums[index]+1){                index++;                end=nums[i];            }            else{                if(begin==end){                    ranges.push_back(to_string(begin));                }                else{                    string ss="";                    ss+=to_string(begin);                    ss+="->";                    ss+=to_string(end);                    ranges.push_back(ss);                }                begin=nums[i];                end=nums[i];                index=i;            }        }        if(begin==end){             ranges.push_back(to_string(begin));        }        else{             string ss="";             ss+=to_string(begin);             ss+="->";             ss+=to_string(nums[nums.size()-1]);              ranges.push_back(ss);        }        return ranges;    }};


0 0
原创粉丝点击