当前位置:网站首页>leetcode:253. 至少需要多少间会议室
leetcode:253. 至少需要多少间会议室
2022-08-04 14:31:00 【OceanStar的学习笔记】
题目来源
题目描述
题目解析
最小堆
分析:
- 这里一定要把所有会议全部安排完,所以一定需要遍历这些数组
- 首先,一堆会议时间是杂乱无章的,为了让其有序,我们可以将其排序,那么问题是以起始时间排序还是以终止时间排序?
- 思考,这道题我们要解决的问题是:当观察到一个会议时,需不需要另外安排会议室?
- 从这个思路来看,我们考虑的顺序是按照会议开始的时间,因此这里按照会议起始的时间来排序
- 排序后遇到的另一个问题是,当一个新会议开始的时候,我们要怎么确定这个时候是否有之前空出来的会议室
- 因此我们还要对会议的结束时间进行统计,每当一个会议开始,我们就去检查这个会议之前开始的会议的结束时间的最小值。所以我们可以维护一个最小堆用于记录结束时间。
小结:
- 先按照开始时间对这些数组进行排序
- 然后准备一个最小堆,这个最小堆维护的是当前会议之前开始的会议的结束时间。怎么维护呢?
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;
}
边栏推荐
猜你喜欢
SLAM 04.视觉里程计-1-相机模型
南瓜科学产品升级 开启益智探索新篇章
属于程序猿的浪漫
Fuse bit of AVR study notes
"C pitfalls and pitfalls" reading summary
从理论到实践:MySQL性能优化和高可用架构,一次讲清
Google plug-in. Download contents file is automatically deleted after solution
Kyushu Cloud attended the Navigator Online Forum to discuss the current status, challenges and future of 5G MEC edge computing
蓝牙技术|上半年全国新增 130 万台充电桩,蓝牙充电桩将成为市场主流
相似文本聚类与调参
随机推荐
CCF GLCC正式开营|九州云开源专家携丰厚奖金,助力高校开源推广
技术分享| 小程序实现音视频通话
关于redis的几件小事(五)redis保证高并发以及高可用
记录都有哪些_js常用方法总结
蓝牙技术|上半年全国新增 130 万台充电桩,蓝牙充电桩将成为市场主流
ICML 2022 | 图神经网络的局部增强
ASA归因:如何评估关键词的投放价值
信创是什么意思?涉及哪些行业?为什么要发展信创?
特殊品种的二次开户验资金额
1375. 二进制字符串前缀一致的次数-前序遍历法
oracle+RAC+linux5.1所需要安装的包
【HMS core】【Media】【视频编辑服务】 在线素材无法展示,一直Loading状态或是网络异常
Phasecraft连下两城,助力英国量子技术商业化加速!
metaRTC5.0新版本支持mbedtls(PolarSSL)
word2003按空格键为什么会出现小数点
1403. 非递增顺序的最小子序列
[Problem solving] QT update component appears "To continue this operation, at least one valid and enabled repository is required"
砺夏行动|九州云章津楠:开源不是少数人的运动,大众化才是源泉
JCMsuite应用:倾斜平面波传播透过光阑的传输
eNSP-小型网络拓扑(DNS、DHCP、网站服务器、无线路由器)