Java中的Arrays.sort()方法
List
- list的用法
Listres = new ArrayList<>();
res.add(intervals[i - 1])
res.get(i)- 二维数组的用法
Arrays.sort(intervals, (a, b) -> a[0] - b[0])
intervals[i]、intervals[i][0]
intervals[i] = new int[] {,}
// List代码---> int[][] int[][] resArr = new int[res.size()][]; for (int i = 0; i < res.size(); i++) resArr[i] = res.get(i);
public int[][] merge(int[][] intervals) {
// 按照数组中第一个元素排序
Arrays.sort(intervals, (a, b) -> a[0] - b[0]);
// 计算合并
List res = new ArrayList<>();
for (int i = 1; i < intervals.length; i++) {
// Math.max:[1,3][2,4]->[1,4] [1,5][2,4]->[1,5]
// 对于 [1,3] 和 [2,6], 比较 3 和 2, 3 >= 2 则合并
if (intervals[i][0] <= intervals[i - 1][1]) {
intervals[i] = new int[] {
intervals[i - 1][0], Math.max(intervals[i - 1][1], intervals[i][1]) };
} else // 不能合并则将上一个合并结果加入
res.add(intervals[i - 1]);
}
// 最后一次的结果需要额外放入
// 比如说最后一个是合并结束的所以只走了上边的if,并没有走下边add的操作,因此最后一个需要单独加进去
res.add(intervals[intervals.length - 1]);
// List ---> int[][]
int[][] resArr = new int[res.size()][];
for (int i = 0; i < res.size(); i++)
resArr[i] = res.get(i);
return resArr;
}



