首页 > 其他分享 >LeetCode435 -- 预定会议问题

LeetCode435 -- 预定会议问题

时间:2023-03-19 20:22:55浏览次数:49  
标签:return LeetCode435 auto -- intervals 预定 端点 区间 排序

0. ref

参考自

1. 题目描述

预定会议问题:给定我们一堆区间,区间不能重叠(\([1,2]\) 和 \([2,3]\) 的 \(2\) 不算重叠),求最多能保留多少个区间?

做法:贪心,按【右端点】排序。
为什么要按照右端点排序?反证,如果按照左端点排序,看下面的例子:

|_________|                  区间a
  |___|                      区间b       
       |__|                  区间c   
            |______|         区间d   

如果按照左端点升序的话,那么答案就是 \(2\) 了,但显然,答案应该是 \(3\)。
我们把区间的左右端点比作会议的开始和结束时间,一句话:开始早的会议不一定结束早!
如果我们按照右端点排序,那么一定能留给后面的会议更长的时间。

本题其实还有另外一种做法:\(LCS\),只不过是一个二维 \(LCS\) 问题,而且由于区间之间不是严格大于的原因,为我们避免了不必要的麻烦!
参见 my blog here,我们可以直接 sort,不需要制定自定义 cmp
只不过,第一种做法是:\(O(Nlog^{N} + N)\),而 \(LCS\) 是 \(O(Nlog^{N} + Nlog^{N})\),常数大一点罢了。



2. 思路



3. 代码

class Solution {
public:
    int eraseOverlapIntervals(vector<vector<int>>& intervals) {
        sort(intervals.begin(), intervals.end(), [&](auto &x, auto &y){
            if(x[1] == y[1])    return x[0] < y[0];
            return x[1] < y[1];
        });
        int res = 0;
        int right = -2e9;
        for(auto &x : intervals) {
            if(x[0] >= right) {
                right = x[1];
                res ++ ;
            }
        }
        return intervals.size() - res;
    }
};

标签:return,LeetCode435,auto,--,intervals,预定,端点,区间,排序
From: https://www.cnblogs.com/ALaterStart/p/17234121.html

相关文章

  • 实验二
    #include<stdio.h>#include<stdlib.h>#include<time.h>#defineN5#defineR1586#defineR2701intmain(){intnumber;inti;srand(time(0))......
  • 全链路压测(6):确认范围和识别风险
    转载:https://www.cnblogs.com/imyalost/p/15992042.html上篇文章用了很长的篇幅讲述了全链路压测从零开始落地实施的主要过程,其中在准备阶段是最耗费时间和精力的。全链......
  • 时间复杂度--大O记算法
       EG:  ......
  • Linux(centos)接口代理策略
    Linux(centos)接口代理策略前言目的:实现一个接口转发,代理访问qiang内不能访问的接口。实现方式:直接使用go的第三方ssr包;(有报错,可能是版本不对,未实现)Linux直接安装ssr......
  • 省选武汉联测 7
    不要停止演奏,就算你的身体已如碎肉一般亦是如此。线性代数在oi中的应用重庆市巴蜀中学郭雨豪摘要:线性代数在oi中没有用。动点(point)首先考虑不带修。这显然,线段......
  • 研究生本科毕业论文参考文献格式(GB/T 7714-2005)-Endnote
    Endnote可以很方便地在写论文的过程中进行文献引用。目前很多毕业论文引用的格式要求一般都是GB/T7714-2005。Endnote有自带的ChineseStdGBT7714(Author-Year)或Ch......
  • IT项目经理
    具体项目工作的管理者项目经理是具体项目工作的管理者,他们在工作中不断提升自己的领导才华,同时该职业又是一个权利与责任并存的职业,他们主要对项目进行背景调查,收集整理......
  • Java实现简易酒店管理系统
    实现订房退房查房退出四个基本功能酒店有三楼,每楼5个房间,房间号按照101,102,...201,202·有双人间,单人间,地铺间能实现订房退房查房等基本功能在控制台中实现,操作便捷一......
  • rust语法 3
    测试单元测试测试单一模块,且能够测试私有接口。创建tests模块并使用#[cfg(test)]注解。一般测试模块与目标函数放置于同一个文件。使用cargotest运行测试,cargo......
  • nacos原理(一)Springcloud 配置中心接入原理&客户端拉取配置原理
    ​ 之前已经了解到Springcloud环境对bootstrap.yml加载的原理,也就是加载bootstrap的时机比较靠前。接下来简单研究下Springcloud环境中配置中心的加载以及动态更新原理。......