当前位置:网站首页>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
- RS|哨兵二号(.SAFE格式)转tif格式
- B.构造一个简单的数列(贪心)
- NPDP|作为产品经理,如何快速提升自身业务素养?
- F. Jinyu and its outer matrix (construction)
- 《中国综合算力指数》《中国算力白皮书》《中国存力白皮书》《中国运力白皮书》在首届算力大会上重磅发出
- [Problem solving] QT update component appears "To continue this operation, at least one valid and enabled repository is required"
- xampp安装包含的组件有(php,perl,apche,mysql)
- 【剑指offer59】队列的最大值
- How to install postgresql and configure remote access in ubuntu environment
猜你喜欢
期货开户之前要谈好最低手续费和交返
Google plug-in. Download contents file is automatically deleted after solution
Redis 复习计划 - Redis主从数据一致性和哨兵机制
数据库恢复
SLAM 05.视觉里程计-2-特征法
广告电商系统开发功能只订单处理
谷歌插件.crx文件下载后被自动删除的解决方法
How to automatically renew the token after it expires?
考研上岸又转行软件测试,从5k到13k完美逆袭,杭州校区小哥哥拒绝平庸终圆梦!
世间几乎所有已知蛋白质结构,都被DeepMind开源了
随机推荐
js深拷贝和浅拷贝具体使用区别_es6深拷贝和浅拷贝
centos7安装mysql急速版
小 P 周刊 Vol.13
SQL语句的写法:Update、Case、 Select 一起的用法
我爱七夕哈哈哈
四平方和,激光炸弹
属于程序猿的浪漫
metaRTC5.0新版本支持mbedtls(PolarSSL)
CCF GLCC officially opened | Kyushu Cloud open source experts bring generous bonuses to help universities promote open source
职场漫谈:为什么越是内卷的行业越有人争着抢着往里冲?好奇怪的说...
并发程序的隐藏杀手——假共享(False Sharing)
Almost all known protein structures in the world are open sourced by DeepMind
[The Art of Hardware Architecture] Study Notes (1) The World of Metastability
本周讨论用户体验:Daedalus 的 Nemo 加入 Ambire,探索加密海洋
阴影初始化【5】
Database recovery
数据库恢复
零基础可以转行软件测试吗 ?这篇文章告诉你
集合划分差最小问题(01背包)
华为手机切换屏幕效果_华为p40页面切换效果怎么换