当前位置:网站首页>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;
}
边栏推荐
- 兆骑科创创新创业大赛活动举办,线上直播路演,投融资对接
- Google plug-in. Download contents file is automatically deleted after solution
- 编程思想_编程有必要给孩子学吗?
- Workaround without Project Facets
- This week to discuss the user experience: Daedalus Nemo to join Ambire, explore the encryption of the ocean
- 关于redis的几件小事(五)redis保证高并发以及高可用
- How to Identify Asynchronous I/O Bottlenecks
- Win10无法访问移动硬盘怎么解决
- How to install postgresql and configure remote access in ubuntu environment
- 蓝牙技术|上半年全国新增 130 万台充电桩,蓝牙充电桩将成为市场主流
猜你喜欢
基于 Next.js实现在线Excel
编译型与解释型编程语言的区别
手搓一个“七夕限定”,用3D Engine 5分钟实现烟花绽放效果
Technology sharing | Mini program realizes audio and video calls
【剑指offer33】二叉搜索树的后序遍历序列
南瓜科学产品升级 开启益智探索新篇章
【历史上的今天】8 月 4 日:第一位图灵奖女性得主;NVIDIA 收购 MediaQ;首届网络安全挑战大赛完成
Phasecraft连下两城,助力英国量子技术商业化加速!
用了TCP协议,就一定不会丢包吗?
Cisco-小型网络拓扑(DNS、DHCP、网站服务器、无线路由器)
随机推荐
ACL 2022 | 社会科学理论驱动的言论建模
CCF GLCC officially opened | Kyushu Cloud open source experts bring generous bonuses to help universities promote open source
FRED应用:毛细管电泳系统
蓝牙技术|上半年全国新增 130 万台充电桩,蓝牙充电桩将成为市场主流
企业级优化
[深入研究4G/5G/6G专题-50]: URLLC-16-《3GPP URLLC相关协议、规范、技术原理深度解读》-10-高可靠性技术-1-低编码率编码调制方案MCS与高可靠性DRB
第六届未来网络发展大会,即将开幕!
代码随想录笔记_动态规划_1049最后一块石头的重量II
Android Sqlite3 basic commands
广告电商系统开发功能只订单处理
如何和程序员谈恋爱
Oracle RAC环境下vip/public/private IP的区别
如何才能有效、高效阅读?猿辅导建议“因材因时施教”
如何确定异步 I/O 瓶颈
metaRTC5.0新版本支持mbedtls(PolarSSL)
C# winforms 输入颜色转换颜色名
Kyushu Cloud attended the Navigator Online Forum to discuss the current status, challenges and future of 5G MEC edge computing
节省50%成本!京东云重磅发布新一代混合CDN产品
eNSP-小型网络拓扑(DNS、DHCP、网站服务器、无线路由器)
世间几乎所有已知蛋白质结构,都被DeepMind开源了