228. Summary Ranges

题目

Given a sorted integer array without duplicates, 
return the summary of its ranges.
Input: [0,1,2,4,5,7]
Output: ["0->2","4->5","7"]

给一个有序数组,将数组中连续的数字的变成range的形式

分析

这道题居然是medium难度的让我大跌眼镜。一遍扫描就可以了,具体看代码

代码

public List<String> summaryRanges(int[] nums) {
    List<String> list = new ArrayList<>();
    if(nums == null || nums.length == 0) return list;
    int start = nums[0];
    int prev = nums[0];
    int cur = nums[0];
    for(int i = 1; i < nums.length; i ++){
        cur = nums[i];
        if(cur != prev + 1){ //不连续
            String info = start == prev ? "" + start : start + "->" + prev;
            list.add(info);
            start = cur;
        }
        prev = cur;
    }
    list.add(start == prev ? "" + start : start + "->" + prev);
    return list;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容