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 summaryRanges(int[] nums) {
    List 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;
}

你可能感兴趣的:(228. Summary Ranges)