// 先排个序
// 这里巧用链表,可以快速的获取到last,通过last数组的第二个元素和当前数组的第一个元素对比,如果当前数组的第一个元素<=last数组的第二个元素, 就需要合并
class Solution {
public int[][] merge(int[][] intervals) {
// 1.不需要特殊处理// 2.排个序Arrays.sort(intervals, (a, b) -> Integer.compare(a[0], b[0]));// 3. 用个linkedList存放结果LinkedList<int[]> list = new LinkedList<>();list.add(intervals[0]);for (int i = 1; i < intervals.length; i++) { // [[1,3],[2,6],[8,10],[15,18]]if (intervals[i][0] <= list.getLast()[1]) { // 3. 如果 2是小于3的list.getLast()[1] = Math.max(intervals[i][1], list.getLast()[1]); // 如果存在[[1,8],[2,6]],所以要max一下} else {list.add(intervals[i]);}}return list.toArray(new int[list.size()][]);
}
}