合并区间 以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。 class Solution { public int[][] merge(int[][] intervals) { List<int[]> res = new ArrayList<>(); Arrays.sort(intervals, (a, b) -> a[0] - b[0]); res.add(intervals[0]); for (int i = 1; i < intervals.length; i++) { int[] cur = intervals[i]; int[] pre = res.get(res.size() - 1);//res里的最后一个元素 if (cur[0] > pre[1]) { res.add(cur); } else { pre[1] = Math.max(cur[1], pre[1]);// !! 取最大的右边界 } } return res.toArray(new int[res.size()][]);//将集合(ArrayList动态数组)转化为二维数组 } }