美文网首页
228. 汇总区间

228. 汇总区间

作者: calm_peng | 来源:发表于2018-11-25 22:28 被阅读0次

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

示例 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<String> summaryRanges(int[] nums) {
        int i = 0 ,end = 0,start = 0;
        List<String> result = new ArrayList<>(); 
        int[] nums1 = new int[nums.length+1];
        for(int k = 0;k<nums.length;k++){
            nums1[k] = nums[k];
        }
        //nums1 = nums.clone();
        nums1[nums.length] = -1;
        //nums = nums1;
        while(i<nums1.length-1 && end<nums1.length){
            if(nums1[i] == nums1[i+1]-1){
                end++;
               
            }else{
                pushList(result ,nums1,start,end);
                end = end + 1;
                start = end;
                
            }
             i++;
        }
            
            
           
    
    return result;
    
    }
    public static void pushList(List<String> 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. 汇总区间

    leetcode

  • 228. 汇总区间

    给定一个无重复元素的有序整数数组,返回数组区间范围的汇总。 示例 1: 输入: [0,1,2,4,5,7]输出: ...

  • LeetCode 228.汇总区间

    给定一个 无重复元素 的 有序 整数数组 nums 。 返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表...

  • 228. Summary Ranges 汇总区间

    题目链接tag: Medium; question:  Given a sorted integer array ...

  • 汇总区间

    题目描述 难度级别:简单 给定一个无重复元素的有序整数数组 nums 。 返回 恰好覆盖数组中所有数字 的 最小有...

  • Swift - LeetCode - 汇总区间

    题目 给定一个 无重复元素 的 有序 整数数组 nums。 返回 恰好覆盖数组中所有数字 的 最小有序 区间范围...

  • 2019-01-31

    LeetCode 228. Summary Ranges Description Given a sorted i...

  • 228. Summary Ranges

    228. Summary Ranges 题目:https://leetcode.com/problems/summ...

  • 228.修身

    文/逍遥居士 事无巨细心随意,朝出晚归日西边。 经年累月廿十载,步入中间遇星天。 世事无常不尽然,却看心境修尘缘。...

  • 228.旅程

    遇见了你喜欢的人 去了你做梦都想去的地方 吃到了你爱吃的东西 实现了你想要实现的梦想 都很好 我一样希望这一路的过...

网友评论

      本文标题:228. 汇总区间

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