56.合并区间

java 复制代码
class Solution {
    public int[][] merge(int[][] intervals) {
        // 对 intervals 数组按照每个区间的开始位置进行排序
        Arrays.sort(intervals, (o1, o2) -> o1[0] - o2[0]);
        
        int len = intervals.length;
        // 创建结果数组 res,初始化长度为 intervals 的长度
        int[][] res = new int[len][2];
        // 将第一个区间作为结果数组的初始元素
        res[0] = intervals[0];
        // 初始化结果数组的索引
        int index = 0;

        // 从第二个区间开始遍历 intervals 数组
        for (int i = 1; i < len; i++) {
            // 如果当前区间的左侧大于结果数组中的右侧
            if (intervals[i][0] > res[index][1]) {
                // 将当前区间作为结果数组的新元素
                res[++index] = intervals[i];
            } else {
                // 否则,将当前区间的结束时间与结果数组中最后一个区间的结束时间取最大值
                res[index][1] = Math.max(intervals[i][1], res[index][1]);
            }
        }
        
        // 结果数组只需要 index+1 个元素,因为最后一个元素后面的元素都被合并了
        return Arrays.copyOf(res, index + 1);
    }
}
相关推荐
霸道流氓气质8 小时前
Spring AI异常处理与重试机制
java·人工智能·spring
郑州光合科技余经理10 小时前
本地生活服务系统:成品模块和定制接口怎么划界
java·前端·人工智能·后端·系统架构·php·ai编程
萧瑟余晖10 小时前
Java深入解析篇三十三之密封类与接口(Sealed Classes)详解
java·开发语言
论迹复利13 小时前
FreeRTOS 在 RISC-V 上是如何“点火“的 —— 从 main() 到第一个任务的完整链路
java·开发语言·risc-v
张宇Joaquin14 小时前
鲲鹏统一并行加速库KUPL--众核并行能力介绍
java·开发语言·网络
736c14 小时前
C语言-数组 07
c语言·开发语言
宸津-代码粉碎机14 小时前
AI攻防战升级!基于Spring AI构建Java应用自动免疫安全体系
java·大数据·开发语言·人工智能·python·安全·spring
2601_9637491015 小时前
越华环保集团数字化污水治理:端边云采集架构与平台对接实现
java·大数据·架构
xcLeigh16 小时前
Go入门:整数类型的溢出与安全边界
java·安全·golang
LorryJovens16 小时前
【LAAP科研】CEN因果等价网络理论---从双缝干涉到因果等价
开发语言·php