228. 汇总区间


给定一个无重复元素的有序整数数组,返回数组区间范围的汇总。

示例 1:

输入: [0,1,2,4,5,7]
输出: ["0->2","4->5","7"]
解释: 0,1,2 可组成一个连续的区间; 4,5 可组成一个连续的区间。
示例 2:

输入: [0,2,3,4,6,8,9]
输出: ["0","2->4","6","8->9"]
解释: 2,3,4 可组成一个连续的区间; 8,9 可组成一个连续的区间。

分析:创建两个值 start end 来表示每次的连续的区间 i每次++
判断 nums[i] == nums[i+1] -1 是否成立 来判断是否 加入区间
这样 由前往后的 遍历会有一个问题。最后一个不会到 最后一个值与倒数第二值连续时 逻辑上没有覆盖!!导致错误。
两种改法 在最后一个后面 加入一个 前面不等的值
或者 if{} 中加条件 判断


*/



class Solution {
    public List summaryRanges(int[] nums) {
        int i = 0 ,end = 0,start = 0;
        List result = new ArrayList<>(); 
        int[] nums1 = new int[nums.length+1];
        for(int k = 0;k result,int[] nums1,int start,int end){
        if(start == end){
            String s = ""+nums1[start];
            result.add(s);
        }else{
            String s = nums1[start]+"->"+nums1[end];
            result.add(s);
        }
    }
}

leetcode

你可能感兴趣的:(228. 汇总区间)