题目描述:
    image.png
    image.png
    例如:[[1,3],[2,6],[8,10],[15,18]],首先按每个数组的第一位数从小到大排序,那么只要后面一个数组的第一个数小于当前数组的最后一个数,说明需要合并,数组的最后一个数要取最大

    1. class Solution {
    2. public int[][] merge(int[][] intervals) {
    3. Arrays.sort(intervals, Comparator.comparingInt(o -> o[0]));
    4. ArrayList<int[]> list = new ArrayList<>();
    5. int[] ints=intervals[0];
    6. for (int i = 0; i < intervals.length; i++) {
    7. if (ints[1] >= intervals[i][0]) {
    8. ints[1] = Math.max(ints[1], intervals[i][1]);
    9. } else {
    10. list.add(ints);
    11. ints = intervals[i];
    12. }
    13. }
    14. list.add(ints);
    15. return list.toArray(new int[list.size()][2]);
    16. }
    17. }