56. 合并区间

2021-07-22  本文已影响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);
    }
}
上一篇下一篇

猜你喜欢

热点阅读