美文网首页
56. 合并区间

56. 合并区间

作者: 名字是乱打的 | 来源:发表于2021-07-22 23:47 被阅读0次

    思路:

    先按照起始值排序

    • 如果未存储值或者目前元素的左便捷大于上个已安排元素的右边界
      则存入新值
    • 其他情况就是当前元素左边界在上个元素区间内,这里决定要不要扩充上个元素的右边届

    代码:

    class Solution {
        public int[][] merge(int[][] intervals) {
            //按照起始值排序
            Arrays.sort(intervals, Comparator.comparingInt(i -> i[0]));
            int [][] res=new int[intervals.length][2];
            int setResIndex=-1;
            for (int[] interval : intervals) {
                if (setResIndex==-1||interval[0]>res[setResIndex][1]){
                    res[++setResIndex]=interval;
                }else {
                    res[setResIndex][1]=Math.max(res[setResIndex][1],interval[1]);
                }
            }
            return Arrays.copyOf(res,setResIndex+1);
        }
    }
    

    相关文章

      网友评论

          本文标题:56. 合并区间

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