合并区间【贪心算法】

  1. 合并区间
    以数组 intervals 表示若干个区间的集合,其中单个区间为 intervalsi = 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动态数组)转化为二维数组
    }
}
相关推荐
Mem0rin2 小时前
前缀和:一维与二维
数据结构·算法
小趴蔡ha2 小时前
12 K-Means 聚类入门:没有标签如何发现数据分组
算法·kmeans·聚类
-dzk-2 小时前
【二叉树】LC 101.对称二叉树
算法·二叉树
白狐_7982 小时前
408数据结构第6章:图——核心考点、算法对比与AOE网真题
数据结构·算法
变量未定义~2 小时前
DFS之剪枝与优化-小猫爬山、 数独、 木棒
算法
Navigator_Z2 小时前
LeetCode //C - 1187. Make Array Strictly Increasing
c语言·算法·leetcode
龍德明宇3 小时前
如何理解大语言模型的负主体性-龍德明宇
人工智能·算法·大语言模型llm·负主体性·ai存在论
白狐_7983 小时前
408数据结构第6章:迪杰斯特拉(Dijkstra)算法——真题精讲
数据结构·算法
皓月斯语3 小时前
P2858 [USACO06FEB] Treats for the Cows G/S
数据结构·c++·算法·动态规划
旖旎夜光4 小时前
LeetCode 397:整数替换(贪心问题) —— 题解
数据结构·c++·算法·leetcode·贪心算法