一刷185-力扣热题-253会议室II(m)

news/2024/11/27 8:44:30/
题目:
给定一个会议时间安排的数组,
每个会议时间都会包括开始和结束的时间 [[s1,e1],[s2,e2],] (si < ei),
为避免会议冲突,同时要考虑充分利用会议室资源,请你计算至少需要多少间会议室,才能满足这些会议安排。
示例:
输入: [[0, 30],[5, 10],[15, 20]]
输出: 2输入: [[7,10],[2,4]]
输出: 1思考:
这个题目有点类似于上下车问题。本题是规划的对于时间冲突的解决方案。
根据题目,我们发现,并不需要在意该会议持续时间。因为会议时间已经固定了,
所以我们只需要关注会议室及其会议结束时间即可。
因为只有会议时间结束,才能进行下一个会议。否则,这需要开一个新的会议室,去进行会议。
为了最优开会成本和时间效率,下一个会议进入的房间,根据会议室结束时间和该会议开始时间的差决定,
时间差越小,开会越能“无缝连接”,于是效率越高。用优先队列实现最小堆先将数组进行升序排序Arrays.sort(intervals,(o1,o2)->o1[0]-o2[0]);这里使用了Lambda表达式,完整写法应该是
Arrays.sort(intervals,new Comparator<int[]>(){@Overridepublic int compare(int[]o1,int[]o2){return o1[0]-o2[0];}
});
o1[0]-o2[0] <=0,且o1排在o2前面,所以是升序排序。将会议的结束时间存入优先队列(升序排序),队首元素为最早会议结束时间(start),
如果另一场会议的开始时间早于start,则没有空闲会议室,需要新开一间;否则,弹出队首元素。最后队列中的剩余元素为会议室数量时间复杂度:
排序:O(NlogN);插入和删除:O(logN)
所以总的时间复杂度为O(NlogN)
空间复杂度: O(N)
class Solution {public int minMeetingRooms(int[][] intervals) {if (intervals == null || intervals.length == 0) return 0;Arrays.sort(intervals, (o1, o2) - > o1[0] - o2[0]);//升序排列PriorityQueue<Integer> queue = new PriorityQueue<>((o1, o2) -> o1-o2);queue.offer(intervals[0][1]);//将第一个会议的结束时间存入栈中for (int i = 1; i < intervals.length; i++) {//从第二个会议开始遍历//若之后的会议开始时间 大于 当前栈中栈顶存储的结束时间 //(大于: 会议开始时间 在 栈顶时间之后)  //弹栈:代表 这个会议室可以重复使用, 不需要重新开新的一间会议室 所以queue--if (intervals[i][0] >= queue.peek()) {queue.poll();}queue.offer(intervals[i][1]); }return queue.size();}
}

(plus题目)


http://www.ppmy.cn/news/569863.html

相关文章

7-185 整数的分类处理(有注释)

给定 N 个正整数&#xff0c;要求你从中得到下列三种计算结果&#xff1a; A1 能被 3 整除的最大整数A2 存在整数 K 使之可以表示为 3K1 的整数的个数A3 存在整数 K 使之可以表示为 3K2 的所有整数的平均值&#xff08;精确到小数点后 1 位&#xff09; 输入格式&#xff…

关于React #185错误的坑

关于React #185错误的坑 在这里插入图片描述 这几天突然有客户跟我说进入项目直接白屏了&#xff0c;但是只有他的电脑会这样&#xff0c;我现场打开控制台&#xff0c;发现报图中错误&#xff0c;经过查询后&#xff0c;解释全是再render函数中return前用了setState,所以导致…

Linux 命令(185)—— batch 命令

文章目录 1.命令简介2.命令格式3.选项说明4.常用示例参考文献 1.命令简介 batch 在系统空闲的时候执行任务。 与 at 命令不同的地方在于 batch 命令不需要指定时间&#xff0c;自动在系统空闲的时候执行指定的任务。系统空闲指的是系统负载平均值低于 0.8 或 atd 调用中指定的…

toefl 185独立思路

无老师 小站 TWE185题目写作套路 同意上大学好. &#xff08;1&#xff09;为未来工作进行准备 &#xff08;2&#xff09;交更多的朋友&#xff0c;学习他们的思维方式 &#xff08;3&#xff09;系统的学习知识 I think going to the college is the better policy. First…

电信联通上海分别启用181与185号段

上海电信和上海联通9月25日均启用了新号段&#xff0c;“电信181”和“联通185”在上海面世。 当天&#xff0c;上海电信推出“天翼云卡”&#xff0c;办理云卡套餐的用户可抢得181靓号&#xff1b;上海联通则把185号段大量“靓号”留给Nano SIM卡的新用户&#xff0c;iPhone 5…

A002-185-2502-李林

作业A002-185-2502-李林 课程名称 软件需求分析与建模 班级 18软件工程5班 教导教师 董瑞生 李林 1814080902502 日期 2020.12.15 目录 作业内容 目录1、Excel查找结合项目主题说明1.1第一次查词1.1.1 判定表&#xff08;Decision table&#xff09;1.1.2指导委员会&#xff08…

ABC-185(A~F)

比赛地址 个人博客 github A /** Author: Moon-light* 按照题意输出 */ #include <bits/stdc.h> using namespace std; #define fi first #define se second #define pb push_back #define mp make_pair #define IO ios::sync_with_stdio(false);cin.tie(0);cout.tie(…

sql查询-leetcode184 and 185

链接&#xff1a;力扣https://leetcode.cn/problems/department-highest-salary/力扣https://leetcode.cn/problems/department-top-three-salaries/ 184:求工资最高的员工 我的思路&#xff1a;先将两个表进行合并处理&#xff0c;再用max函数在子查询中获取最高工资的数据。 …