合并区间【贪心算法】

  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动态数组)转化为二维数组
    }
}
相关推荐
cici158741 分钟前
含风光储燃的微电网能量管理系统(PSO优化)
算法
Das113 分钟前
图像色彩迁移技术算法及基本原理
算法
发疯幼稚鬼17 分钟前
二叉树的广度优先遍历
c语言·数据结构·算法·宽度优先
谭欣辰19 分钟前
C++ DFS 与 BFS 剪枝方法详解
c++·算法·剪枝
Via_Neo28 分钟前
乘积最大问题
数据结构·算法
CN-Dust34 分钟前
【C++专题】格式化输出与输入
开发语言·c++·算法
自我意识的多元宇宙44 分钟前
数据结构----插入排序
数据结构·算法·排序算法
im_AMBER1 小时前
Leetcode 162 除了自身以外数组的乘积 | 接雨水
开发语言·javascript·数据结构·算法·leetcode
Westward-sun.1 小时前
YOLO目标检测算法与mAP评估指标详解(附示例)
算法·yolo·目标检测
cpp_25011 小时前
P1873 [COCI 2011/2012 #5] EKO / 砍树
数据结构·c++·算法·题解·二分答案·洛谷·csp