当前位置:网站首页>leetcode: 253. How many meeting rooms are required at least
leetcode: 253. How many meeting rooms are required at least
2022-08-04 14:36:00 【OceanStar's study notes】
题目来源
题目描述
题目解析
最小堆
分析:
- 这里一定要把所有会议全部安排完,所以一定需要遍历这些数组
- 首先,一堆会议时间是杂乱无章的,为了让其有序,我们可以将其排序,那么问题是以起始时间排序还是以终止时间排序?
- 思考,这道题我们要解决的问题是:当观察到一个会议时,需不需要另外安排会议室?
- 从这个思路来看,我们考虑的顺序是按照会议开始的时间,因此这里按照会议起始的时间来排序
- 排序后遇到的另一个问题是,当一个新会议开始的时候,我们要怎么确定这个时候是否有之前空出来的会议室
- 因此我们还要对会议的结束时间进行统计,每当一个会议开始,我们就去检查这个会议之前开始的会议的结束时间的最小值.所以我们可以维护一个最小堆用于记录结束时间.
小结:
- 先按照开始时间对这些数组进行排序
- 然后准备一个最小堆,这个最小堆维护的是当前会议之前开始的会议的结束时间.怎么维护呢?
int minMeetingRooms(std::vector<std::vector<int>>intervals){
if(intervals.empty()){
return 0;
}
int minRooms = 0;
std::sort(intervals.begin(), intervals.end(), [](std::vector<int> &l, std::vector<int> &r){
return l[0] < r[0];
});
std::priority_queue<int, std::vector<int>, std::greater<>> pq;
// 第一个会议肯定是需要排序的
pq.emplace(intervals[0][1]);
for (int i = 1; i < intervals.size(); ++i) {
// 有一个会议室空出来了
if(intervals[i][0] >= pq.top()){
// 如果当前会议start >= 之前的end
pq.pop(); // 把之前的房间空出来
}
pq.emplace(intervals[i][1]);
}
return minRooms;
}
边栏推荐
- 编译型与解释型编程语言的区别
- Lixia Action | Kyushu Yunzhang Jinnan: Open source is not a movement for a few people, popularization is the source
- 如何在ubuntu环境下安装postgresql并配置远程访问
- Lecture 4 SVN
- Sum of four squares, laser bombs
- Problem solving-->Online OJ (18)
- AOSP内置APP特许权限白名单
- 谷歌插件.crx文件下载后被自动删除的解决方法
- 用了TCP协议,就一定不会丢包吗?
- 我爱七夕哈哈哈
猜你喜欢
Database recovery
量化细胞内的信息流:机器学习时代下的研究进展
[Beiya data recovery] IBM System Storage storage lvm information lost data recovery solution
用了TCP协议,就一定不会丢包吗?
爬虫——selenium基本使用、无界面浏览器、selenium的其他用法、selenium的cookie、爬虫案例
广告电商系统开发功能只订单处理
JCMsuite应用:倾斜平面波传播透过光阑的传输
Crawler - basic use of selenium, no interface browser, other uses of selenium, cookies of selenium, crawler cases
Centos7 install mysql version rapidly
idea去掉spark的日志
随机推荐
从理论到实践:MySQL性能优化和高可用架构,一次讲清
Makefile 语法及使用笔记
七夕邂逅爱,那人一定在
OAID是什么
记录都有哪些_js常用方法总结
如何在ubuntu环境下安装postgresql并配置远程访问
爬虫——selenium基本使用、无界面浏览器、selenium的其他用法、selenium的cookie、爬虫案例
[Beiya data recovery] IBM System Storage storage lvm information lost data recovery solution
SLAM 05.视觉里程计-2-特征法
SLAM 04.视觉里程计-1-相机模型
This week to discuss the user experience: Daedalus Nemo to join Ambire, explore the encryption of the ocean
MySQL【窗口函数】【共用表表达式】
字符串类的设计与实现_C语言字符串编程题
用于X射线聚焦的复合折射透镜
Centos7 install mysql version rapidly
leetcode:259. 较小的三数之和
关于redis的几件小事(五)redis保证高并发以及高可用
Makefile syntax and usage notes
在腾讯,我的试用期总结!
vim common operation commands