首页 » 编程之美 » 正文

[leetcode_228]Summary Ranges

简单的模拟题,合并区间

class Solution {
public:
    string convertIntToStr(int num)
    {
        char str[255];
        sprintf(str, "%d", num);
        return str;
    }</p>

<pre><code>vector&amp;lt;string&amp;gt; summaryRanges(vector&amp;lt;int&amp;gt;&amp;amp; nums) {
    vector&amp;lt;string&amp;gt; ranges;
    ranges.clear();
    if (nums.size() &amp;lt;= 0)
    {
        return ranges;
    }
    int start = nums[0];
    int end = nums[0];
    for (int i = 1;i &amp;lt; nums.size(); i++)
    {
        if (nums[i] - nums[i-1] == 1)
        {
            end = nums[i];
        }
        else
        {
            string item = convertIntToStr(start);
            if (end == start)
            {
                ranges.push_back(item);
            }
            else
            {
                item += &amp;quot;-&amp;gt;&amp;quot;;
                item += convertIntToStr(end);
                ranges.push_back(item);
            }
            start = nums[i];
            end = start;
        }
    }
    string item = convertIntToStr(start);
    if (end == start)
    {
        ranges.push_back(item);
    }
    else
    {
        item += &amp;quot;-&amp;gt;&amp;quot;;
        item += convertIntToStr(end);
        ranges.push_back(item);
    }
    return ranges;
}
</code></pre>

<p>};

发表评论