题目描述:
例如:[[1,3],[2,6],[8,10],[15,18]],首先按每个数组的第一位数从小到大排序,那么只要后面一个数组的第一个数小于当前数组的最后一个数,说明需要合并,数组的最后一个数要取最大
class Solution {
public int[][] merge(int[][] intervals) {
Arrays.sort(intervals, Comparator.comparingInt(o -> o[0]));
ArrayList<int[]> list = new ArrayList<>();
int[] ints=intervals[0];
for (int i = 0; i < intervals.length; i++) {
if (ints[1] >= intervals[i][0]) {
ints[1] = Math.max(ints[1], intervals[i][1]);
} else {
list.add(ints);
ints = intervals[i];
}
}
list.add(ints);
return list.toArray(new int[list.size()][2]);
}
}