无重叠区间【贪心算法】

  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;
    }
}
相关推荐
草莓火锅2 小时前
用c++使输入的数字各个位上数字反转得到一个新数
开发语言·c++·算法
散峰而望2 小时前
C/C++输入输出初级(一) (算法竞赛)
c语言·开发语言·c++·算法·github
Kuo-Teng2 小时前
LeetCode 160: Intersection of Two Linked Lists
java·算法·leetcode·职场和发展
fie88892 小时前
基于MATLAB的狼群算法实现
开发语言·算法·matlab
偷偷的卷3 小时前
【算法笔记 11】贪心策略六
笔记·算法
ZPC82103 小时前
FPGA 部署ONNX
人工智能·python·算法·机器人
_w_z_j_3 小时前
爱丽丝的人偶
算法
老前端的功夫4 小时前
Vue2中key的深度解析:Diff算法的性能优化之道
前端·javascript·vue.js·算法·性能优化
yongui478345 小时前
基于深度随机森林(Deep Forest)的分类算法实现
算法·随机森林·分类
是苏浙5 小时前
零基础入门C语言之C语言实现数据结构之单链表经典算法
c语言·开发语言·数据结构·算法