LeetCode(228) Summary Ranges

原创 2015年11月18日 15:28:27

题目

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”].

分析

题目要求很明显,要求对给定的一组有序整数序列按照连续性分组显示;

一次遍历记录连续子序列的首尾元素,然后转换为string格式,整数和字符串格式类型转换需要特别注意INT_MIN时特殊处理;

AC代码

class Solution {
public:
    vector<string> summaryRanges(vector<int>& nums) {
        if (nums.empty())
            return vector<string>();

        int sz = nums.size();

        vector<string> ret;
        int start = nums[0], end = nums[0];
        for (int i = 1; i < sz; ++i)
        {
            if (nums[i] == end + 1)
                end = nums[i];
            else{
                string tmp;
                if (end == start)
                    tmp = IntToString(start);
                else
                    tmp = IntToString(start) + "->" + IntToString(end);

                ret.push_back(tmp);

                start = nums[i];
                end = nums[i];
            }
        }//for

        //加上最后一组
        string tmp;
        if (end == start)
            tmp = IntToString(start);
        else
            tmp = IntToString(start) + "->" + IntToString(end);
        ret.push_back(tmp);

        return ret;
    }

    string IntToString(long num)
    {
        if (num == 0)
            return "0";     
        else if (num == INT_MIN)
            return "-2147483648";       
        string str;
        bool flag = num < 0 ? false : true;

        num = abs(num);
        while (num)
        {
            char c = num % 10 + '0';
            num /= 10;
            str += c;
        }//while
        reverse(str.begin(), str.end());

        if (flag)
            return str;
        else
            return "-" + str;
    }
};

GitHub测试程序源码

版权声明:本文为博主原创文章,未经博主允许不得转载。

leetcode 228: Summary Ranges

leetcode 228: Summary Ranges python, java, c++
  • xudli
  • xudli
  • 2015年06月26日 06:22
  • 10143

[LeetCode 228] Summary Ranges

Given a sorted integer array without duplicates, return the summary of its ranges. For example, giv...
  • sbitswc
  • sbitswc
  • 2015年09月24日 04:07
  • 361

leetCode #228 Summary Ranges

题目:输出一组排好序的int数组的连续范围, 分析:找出连续的地方分段输出即可。 答案:class Solution { public: string formatRange(int st...
  • MarStarck
  • MarStarck
  • 2015年08月11日 12:02
  • 158

[leetcode 228] Summary Ranges

Question: Given a sorted integer array without duplicates, return the summary of its ranges. ...
  • Xiaohei00000
  • Xiaohei00000
  • 2015年12月12日 17:48
  • 151

LeetCode 228: Summary Ranges

Given a sorted integer array without duplicates, return the summary of its ranges. For example, give...
  • sunao2002002
  • sunao2002002
  • 2015年06月26日 18:32
  • 3861

leetcode 228:Summary Ranges

leetcode 228:Summary Ranges 题目: Given a sorted integer array without duplicates, return the summ...
  • tuobadon
  • tuobadon
  • 2015年07月04日 11:29
  • 148

【LeetCode】228 Summary Ranges

Given a sorted integer array without duplicates, return the summary of its ranges.For example, given...
  • yuanzexi
  • yuanzexi
  • 2015年12月01日 17:39
  • 115

Leetcode #228 Summary Ranges

Given a sorted integer array without duplicates, return the summary of its ranges. For example, give...
  • u010129448
  • u010129448
  • 2015年08月01日 21:48
  • 266

Summary Ranges - LeetCode 228

题目描述: Given a sorted integer array without duplicates, return the summary of its ranges. For examp...
  • bu_min
  • bu_min
  • 2015年06月28日 09:11
  • 268

[Leetcode]#228 Summary Ranges

//#228 Summary Ranges //0ms 100% class Solution { public: void int_string(string& s, int num) ...
  • jerseyma
  • jerseyma
  • 2015年09月02日 08:06
  • 154
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:LeetCode(228) Summary Ranges
举报原因:
原因补充:

(最多只允许输入30个字)