无重叠区间【贪心算法】

  1. 无重叠区间
    给定一个区间的集合 intervals ,其中 intervals[i] = [starti, endi] 。返回 需要移除区间的最小数量,使剩余区间互不重叠 。
复制代码
class Solution {
    public int eraseOverlapIntervals(int[][] intervals) {
        //先排序,按照左边界升序,注意这种方法如果左边界相等,则不予处理
        Arrays.sort(intervals, (a, b) -> {
            return Integer.compare(a[0], b[0]);
        });

        int result = 0;
        int pre = intervals[0][1];

        for (int i = 1; i < intervals.length; i++) {
            if (intervals[i][0] < pre) {//有重叠
                result++;//去除数量+1
                pre = Math.min(intervals[i][1], pre);//保留前面重叠区间右端点最小的整个区间。注意这里不可直接进行右端点的区间的局部更新!!
            } else {
                pre = intervals[i][1];//没有重叠,则右端点则保持正常
            }
        }
        return result;
    }
}
相关推荐
45288655上山打老虎12 分钟前
【智能指针】
开发语言·c++·算法
稚辉君.MCA_P8_Java15 分钟前
Gemini永久会员 go数组中最大异或值
数据结构·后端·算法·golang·哈希算法
Michelle802326 分钟前
机器学习实战操作手册
人工智能·算法·机器学习
HaiLang_IT37 分钟前
【目标检测】基于卷积神经网络的轨道部件(扣件、轨枕、钢轨)缺陷检测算法研究
算法·目标检测·cnn
草莓熊Lotso38 分钟前
《算法闯关指南:优选算法--前缀和》--31.连续数组,32.矩阵区域和
c++·线性代数·算法·矩阵
csuzhucong39 分钟前
斜转魔方、斜转扭曲魔方
前端·c++·算法
C语言不精1 小时前
c语言-优雅的多级菜单设计与实现
c语言·开发语言·算法
AI科技星1 小时前
张祥前统一场论:引力场与磁矢势的关联,反引力场生成及拉格朗日点解析(网友问题解答)
开发语言·数据结构·经验分享·线性代数·算法
C雨后彩虹1 小时前
最少交换次数
java·数据结构·算法·华为·面试
foxsen_xia2 小时前
go(基础01)——协程
开发语言·算法·golang