无重叠区间【贪心算法】

  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;
    }
}
相关推荐
王德博客10 小时前
【题解】求分数序列(C++)
算法
再__努力1点10 小时前
LBP纹理特征提取:高鲁棒性的纹理特征算法
开发语言·人工智能·python·算法·计算机视觉
ZPC821010 小时前
PPO算法训练机器人时,如何定义状态/动作/奖励
人工智能·算法·机器人
永远都不秃头的程序员(互关)10 小时前
数据结构实战:从复杂度到C++实现
算法
努力学算法的蒟蒻11 小时前
day42(12.23)——leetcode面试经典150
算法·leetcode·面试
鹿角片ljp11 小时前
力扣226.翻转二叉树-递归
数据结构·算法·leetcode
TechNomad11 小时前
排序算法:归并排序算法
算法·排序算法
WBluuue11 小时前
数据结构和算法:Morris遍历
数据结构·c++·算法
scx2013100411 小时前
20251117Manacher总结
算法·manacher
(●—●)橘子……11 小时前
记力扣42.接雨水 练习理解
笔记·学习·算法·leetcode·职场和发展