Summary Ranges

来源:互联网 发布:工业设计必用的软件 编辑:程序博客网 时间:2024/06/05 20:17

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:    string format(int begin, int end)    {        char buffer[32];        if (end == begin)        {            sprintf(buffer, "%d", begin);        }else{            sprintf(buffer, "%d->%d", begin, end);        }        return string(buffer);    }    vector<string> summaryRanges(vector<int>& nums)    {        if(nums.size() == 0)        {            return vector<string>();        }        vector<string> svec;        int start = 0;        int end = 0;        string tmp = "";        /*if(nums.size() == 1)        {            svec.push_back(format(nums[0], nums[0]));            return svec;        }*/        for(int i = 1; i < nums.size(); ++i)        {            if((nums[i] - nums[i - 1]) != 1)            {                tmp = format(nums[start], nums[i - 1]);                svec.push_back(tmp);                start = i;                tmp = "";            }        }        svec.push_back(format(nums[start], nums[nums.size() - 1]));        return svec;       }};


0 0
原创粉丝点击