题目描述:

例如:[[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]);}}
