java合并区间

 数组 arrs 表示若干个区间的集合。合并所有重叠的区间,并返回 一个不重叠的区间数组

示例 1:

输入:arrs = [[1,3],[2,6],[8,10], [15,18]]

输出:[[1,6],[8,10],[15,18]]

解释:区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].

示例 2:

输入:arrs = [[1,4],[4,5]]

输出:[[1,5]]

解释:区间 [1,4] 和 [4,5] 可被视为重叠区间。

class Solution {
    public int[][] merge(int[][] intervals) {

        if (intervals == null) {
            return new int[0][2];
        }
        int len = intervals.length;
        if (len == 0) {
            return new int[0][2];
        }
        Arrays.sort(intervals, new Compare());

        List list = new ArrayList<>();
        for (int i=0;i list.get(list.size()-1)[1]) {
                list.add(new int[]{start, end});
            } else {
                list.get(list.size()-1)[1] = Math.max(end, list.get(list.size()-1)[1]);
            }
        }
        return list.toArray(new int[list.size()][]);
    }

    public class Compare implements Comparator{
        @Override
        public int compare(int[] arr1, int[] arr2){
            return arr1[0] - arr2[0];
        }
    }

}

你可能感兴趣的:(算法,算法,排序算法,数据结构)