题目
题目链接
题解
class Solution {
public int[][] merge(int[][] intervals) {
// 按每个区间第一个值从小到大排序
Arrays.sort(intervals, (t1, t2) -> {
return t1[0] - t2[0];
});
// 遍历覆盖
int p = 0;
for (int i = 1; i < intervals.length; i++) {
if (intervals[i][0] <= intervals[p][1] && intervals[i][1] > intervals[p][1]) {
// 合并
intervals[p] = new int[]{intervals[p][0], intervals[i][1]};
} else if (intervals[i][0] > intervals[p][1]) {
// 不合并
intervals[++p] = intervals[i];
}
// 其他情况删除
}
int[][] ans = Arrays.copyOf(intervals, p + 1);
return ans;
}
}