56.合并区间

题目描述

题解

排序

首先将所有的数组按照第一个元素的大小进行排序, 然后对每个数组进行遍历, 判断是否进行合并

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public int[][] merge(int[][] intervals) {
int n = intervals.length;
Arrays.sort(intervals, (v1, v2) -> v1[0] - v2[0]);
int[][] res = new int[n][2];
int idx = -1;

for (int[] interval : intervals) {
if (idx == -1 || interval[0] > res[idx][1]) {
res[++idx] = interval;
} else {
res[idx][1] = Math.max(res[idx][1], interval[1]);
}
}

return Arrays.copyOf(res, idx+1);
}
-------------本文结束感谢您的阅读-------------
可以请我喝杯奶茶吗