华为机考题-面试官,求大佬解答,想一天了

全部评论
提供另一个思路, 1.按照会议结束时间给会议排序; 2.建立一个priority_queue<pair<<int, int>> 的优先队列,first表示面试官上一场会议的结束时间,second表示面试官的面试场次,顶部元素为上一场会议结束时间最小的面试官; 3.遍历已经排序过的会议。对于每次会议而言,用该次会议结束时间来和优先队列顶部元素去比较,如果优先队列为空或者是顶部的first大于这次会议的结束时间,就加一个面试官进去,res++;反之看顶部元素面试场次如果达到限度,就删去,否则就更新first为这次会议结束时间,second++。
5 回复 分享
发布于 2022-07-11 17:21
创建一个面试官类,三个属性,开始时间,结束时间,可用面试次数m。 会议按起始时间,结束时间排序,遍历。同时维护一个面试官列表,每次面试都遍历一下面试官列表,如果可以复用,就复用,然后次数减一。不可以复用就新增一个面试官。最后返回列表大小。
3 回复 分享
发布于 2022-07-09 16:37
考的是扫描线,你可以去b战搜一下,参考力扣253题
3 回复 分享
发布于 2022-07-10 00:21
贪心算法,所有起始时间排序,结束时间排序,然后同时遍历。起始小于结束,人数加一,起始加一。起始大于结束,起始加一结束加一。牛客必刷里有主持人的题目,一样的。
2 回复 分享
发布于 2022-07-09 12:30
正解:https://mbd.baidu.com/ma/s/0TH0dnHe
1 回复 分享
发布于 2022-07-09 14:19
所有重复时段里面,重复最多的场次就至少需要多少个面试官吧,不知道这样理解对不对
点赞 回复 分享
发布于 2022-07-11 10:59
c++10行代码,用map,mp【s】+1,mp【e】-1。for(auto &【s,e】:mp)每次对value
点赞 回复 分享
发布于 2022-07-15 18:53
线段树
点赞 回复 分享
发布于 2022-07-21 00:37
我想几天了
点赞 回复 分享
发布于 2022-07-31 13:59
差分数组记录,遍历累加差分数组获得最大累加值就是答案
点赞 回复 分享
发布于 2022-08-02 12:11
优先级队列,leetcode253
点赞 回复 分享
发布于 2022-08-04 20:36
我的想法是,先观察需要多少个科室x,买个科室k场会议,每一个科室需要多少人k/m(不能整除+1),然后下一个科室的为k-(上一场的m-k%m),然后重复。因为每个科室不同,第一科室剩余的人绝对可以不重复下一个科室的人,这样减去需要的会议次数,不知道想法对不对
点赞 回复 分享
发布于 2022-08-05 16:34
这个蛮简单的 贪心就可以 不过要优化一下 不然可能会超时
点赞 回复 分享
发布于 2022-08-09 13:39
经典的扫描线
点赞 回复 分享
发布于 2022-08-20 09:39 上海
一个map,遍历Omn,就行了
点赞 回复 分享
发布于 2022-08-25 10:24 上海
区间分组问题
点赞 回复 分享
发布于 2022-08-31 11:38 上海
原题。
点赞 回复 分享
发布于 2022-09-01 00:59 福建

相关推荐

评论
7
40
分享
牛客网
牛客企业服务