合并区间【贪心算法】

  1. 合并区间
    以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。
java 复制代码
class Solution {
    public int[][] merge(int[][] intervals) {
        List<int[]> res = new ArrayList<>();
        Arrays.sort(intervals, (a, b) -> a[0] - b[0]);

        res.add(intervals[0]);
        for (int i = 1; i < intervals.length; i++) {
            int[] cur = intervals[i];
            int[] pre = res.get(res.size() - 1);//res里的最后一个元素
            
            if (cur[0] > pre[1]) {
                res.add(cur);
            } else {
                pre[1] = Math.max(cur[1], pre[1]);//  !!  取最大的右边界
            }
        }
        return res.toArray(new int[res.size()][]);//将集合(ArrayList动态数组)转化为二维数组
    }
}
相关推荐
一匹电信狗1 小时前
【LeetCode_547_990】并查集的应用——省份数量 + 等式方程的可满足性
c++·算法·leetcode·职场和发展·stl
鱼跃鹰飞2 小时前
Leetcode会员尊享100题:270.最接近的二叉树值
数据结构·算法·leetcode
梵刹古音3 小时前
【C语言】 函数基础与定义
c语言·开发语言·算法
筵陌3 小时前
算法:模拟
算法
We་ct4 小时前
LeetCode 205. 同构字符串:解题思路+代码优化全解析
前端·算法·leetcode·typescript
renhongxia14 小时前
AI算法实战:逻辑回归在风控场景中的应用
人工智能·深度学习·算法·机器学习·信息可视化·语言模型·逻辑回归
CoderCodingNo4 小时前
【GESP】C++四级/五级练习题 luogu-P1223 排队接水
开发语言·c++·算法
民乐团扒谱机4 小时前
【AI笔记】精密光时频传递技术核心内容总结
人工智能·算法·光学频率梳
CoderCodingNo5 小时前
【GESP】C++五级/四级练习题 luogu-P1413 坚果保龄球
开发语言·c++·算法
2301_822366355 小时前
C++中的命令模式变体
开发语言·c++·算法