- 合并区间
以数组 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);
if (cur[0] > pre[1]) {
res.add(cur);
} else {
pre[1] = Math.max(cur[1], pre[1]);
}
}
return res.toArray(new int[res.size()][]);
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19