leetcode 合并区间 java

  1. ArrayList<int[]> merged = new ArrayList<>();来定义数组的list

  2. 将数组进行排序 Arrays.sort(intervals,(a,b) -> Integer.compare(a[0],b[0]));

  3. 如果前面的末尾>=后面的初始,那么新的currentInterval的末尾=这两个数组末尾的最大值,即

    if(currentInterval[1]>=intervals[i][0]){
    //res[i][0]=intervals[i][0];
    currentInterval[1]=Math.max(intervals[i][1],currentInterval[1]);
    }

  4. 否则,新的currentInterval直接等于intervals[i];

  5. 循环结束之后,只是对最后一个区间进行了判断,但是没有加进merged中,因此要把最后一个区间加进去。

  6. 转换成数组形式 merged.toArray(new int[merged.size()][]);

    class Solution {
    public int[][] merge(int[][] intervals) {
    int len = intervals.length;
    if(len == 0) {
    return new int[0][0];
    }

    复制代码
         //按照每个区间的起始值进行排序
         Arrays.sort(intervals,(a,b) -> Integer.compare(a[0],b[0]));
         ArrayList<int[]> merged = new ArrayList<>();
         int[] currentInterval = intervals[0];
        //int[][] res = new int[len][intervals[len-1].length];
         
        for(int i =1; i<len;i++){
             // res[i][0]=intervals[i][0];
             // res[i][1]=intervals[i][1];
             if(currentInterval[1]>=intervals[i][0]){
                 //res[i][0]=intervals[i][0];
                 currentInterval[1]=Math.max(intervals[i][1],currentInterval[1]);
             }else{
                 merged.add(currentInterval);
                 currentInterval = intervals[i];
             }
         }
    
        // 添加最后一个区间
        merged.add(currentInterval);
        return merged.toArray(new int[merged.size()][]);
     }

    }

相关推荐
伍六星44 分钟前
基于JDBC的信息管理系统,那么什么是JDBC呢?
java·数据库·后端·jdbc·数据库连接
互联网行者2 小时前
java云原生实战之graalvm 环境安装
java·开发语言·云原生
徐行tag3 小时前
深度学习基础——神经网络优化算法
深度学习·神经网络·算法
LinuxSuRen4 小时前
Docker Compose Provider 服务介绍
java·运维·docker·容器·eureka
sg_knight5 小时前
Docker网络全景解析:Overlay与Macvlan深度实践,直通Service Mesh集成核心
java·网络·spring boot·spring cloud·docker·容器·service_mesh
liuzhangfeiabc5 小时前
[luogu12541] [APIO2025] Hack! - 交互 - 构造 - 数论 - BSGS
c++·算法·题解
鬣主任6 小时前
JavaSenderMail发送邮件(QQ及OFFICE365)
java·spring boot·smtp/imap/tls
平和男人杨争争7 小时前
山东大学计算机图形学期末复习15——CG15
人工智能·算法·计算机视觉·图形渲染
找不到、了7 小时前
关于ReadWriteLock读写锁的介绍
java·开发语言·jvm
汉得数字平台7 小时前
集星獭 | 重塑集成体验:新版编排重构仿真电商订单数据入库
java·重构·idea·paas·源代码管理