美文网首页
228. Summary Ranges

228. Summary Ranges

作者: exialym | 来源:发表于2016-11-28 23:00 被阅读35次

    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"].
    使用范围的方式描述一个已排序的数组。
    很直接的实现,使用begin来标记当前范围的起点,每遍历到一个位置就看下一个是不是比当前只增1,是的话index继续后移begin不变,不是的话说明当前范围已经结束,输出一个结果,begin和index都指向下一个位置,找新的范围:

    var summaryRanges = function(nums) {
        var num = nums.length;
        if (num===0) return [];
        var res = [];
        var begin = 0;
        var index = 0;
        while(index+1<num) {
            if (nums[index+1]-nums[index]!==1) {
                if (begin === index) {
                    res.push("" + nums[index]);
                } else {
                    res.push(nums[begin] + '->' + nums[index]);
                }
                begin = index + 1;
            }
            index++;
        }
        if (begin === index) {
            res.push("" + nums[index]);
        } else {
            res.push(nums[begin] + '->' + nums[index]);
        }
        return res;
    };
    

    相关文章

      网友评论

          本文标题:228. Summary Ranges

          本文链接:https://www.haomeiwen.com/subject/rpqapttx.html