56. 合并区间

题目

56. 合并区间

题解

代码

import java.util.*;

public class code56 {

    public static int[][] merge(int[][] intervals) {
        List<int[]> res = new ArrayList<>();
        if (intervals.length == 0 || intervals == null) {
            int temp1[][] = new int[0][0];
            return res.toArray(temp1);
        }
        
        // Arrays.sort(intervals, (a, b) -> a[0] - b[0]);
        Arrays.sort(intervals, new Comparator<int[]>() {
            @Override
            public int compare(int o1[], int o2[]) {
                return o1[0] - o2[0];
            }
        });

        int i = 0;
        while (i < intervals.length) {
            int left = intervals[i][0];
            int right = intervals[i][1];
            while (i < intervals.length - 1 && intervals[i + 1][0] <= right) {
                i++;
                right = Math.max(right, intervals[i][1]);
            }
            int x[] = { left, right };
            res.add(x);
            i++;
        }
        int temp2[][] = new int[res.size()][2];
        return res.toArray(temp2);
    }

    public static void main(String[] args) {
        int intervals[][] = { { 1, 3 }, { 2, 6 }, { 8, 10 }, { 15, 18 } };
        // int intervals[][] = { { 1, 4 }, { 4, 5 } };
        int res[][] = merge(intervals);
        for (int i = 0; i < res.length; i++) {
            for (int j = 0; j < res[0].length; j++) {
                System.out.print(res[i][j] + " ");
            }
            System.out.println();
        }
    }

}

参考

  1. 排序——题解一
  2. 合并区间——题解二
  3. java 自定义排序【Comparator升序降序的记法】
  4. java初始化二维数组的三种方式
  5. Java不指定长度的二维数组
  6. Java 8 Lambda 表达式详解
  7. 深入浅出 Java 8 Lambda 表达式
  8. Java Lambda表达式入门
  9. Java 8 Lambda 表达式
  10. Leetcode题解助手
  11. 如何对二维数组进行排序
全部评论

相关推荐

点赞 评论 收藏
分享
03-31 18:02
门头沟学院 Java
白日梦想家_等打包版:不要的哦佛给我
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务