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);
    }
}
相关推荐
程序员清风3 分钟前
AI时代建议学点自己真正感兴趣的!
java·后端·面试
泡海椒3 分钟前
JQuick-Excel 实战:用 VALIDATION 建立可维护的 Excel 导入校验
开发语言·python·excel
longlongzihan7 分钟前
前缀积与后缀积 —— LeetCode 238. 除了自身以外数组的乘积
开发语言·c++·leetcode
Wang's Blog9 分钟前
Java框架 SpringCloud 快速入门: Nacos 配置热更新
java·spring·spring cloud
西索斯coding12 分钟前
Kimi k2.7-code-highspeed 接入 Cline 教程:baseURL 路由变更 + model_id 正确写法
java·服务器·数据库·ai
szial20 分钟前
JavaScript 的 call、apply 和 bind:如何控制函数调用
开发语言·前端·javascript
weixin_3077791323 分钟前
C++代码实现MATLAB中的cvpartition函数功能
开发语言·c++·算法·matlab
黑妹天下第一乖31 分钟前
小智改造实战解读-首 token 延迟去哪了:云端与端侧大模型的分段对照
开发语言·人工智能·python·嵌入式硬件·自然语言处理·iot
。小二32 分钟前
Go 泛型并发利刃:async 库深度评测——370K ops/s、零依赖、生产就绪
开发语言·javascript·golang
用户0942485680334 分钟前
第29章:【OpenJDK中级篇综合实战】百万长连接网关的JVM稳定性工程
java·jvm