题解 | #主持人调度#

主持人调度

http://www.nowcoder.com/practice/4edf6e6d01554870a12f218c94e8a299

优先队列

题目要求可以知道,主持人可以主持多场

但是有重复时间段的不能够同时主持,需要加主持人

优先队列保存从小到大的结束时间,每判读一个时间段就判断起始时间与队首的终止时间对比,若无重复能连续,则无需加主持人

public int minmumNumberOfHost (int n, int[][] startEnd) {
        if(n <= 1){
            return n;
        }
        // 首先安装开始时间排序,开始时间相等的按照截至时间排序
        Arrays.sort(startEnd , (o1 ,o2) -> {
            return o1[0] ==  o2[0] ? o1[1] - o2[1] : o1[0] - o2[0];
        });
        // 保存每一个时间段的终止时间,从小到大
        PriorityQueue<Integer> queue = new PriorityQueue<>();
        for(int i = 0 ; i < n ; i++){
            // 若当前时间段的开始时间大于了队首的终止时间,那么队首的主持人可以继续主持这个,不用加人
            if(!queue.isEmpty() && queue.peek() <= startEnd[i][0]){
                queue.poll();
            }
            queue.offer(startEnd[i][1]);
        }
        return queue.size();
    }
全部评论
这个方法跑不过,第14个case跑不通
点赞 回复 分享
发布于 2022-06-16 11:27

相关推荐

牛客717484937号:双飞硕没实习挺要命的
点赞 评论 收藏
分享
霁华Tel:秋招结束了,好累。我自编了一篇对话,语言别人看不懂,我觉得有某种力量在控制我的身体,我明明觉得有些东西就在眼前,但身边的人却说啥也没有,有神秘人通过电视,手机等在暗暗的给我发信号,我有时候会突然觉得身体的某一部分不属于我了。面对不同的人或场合,我表现出不一样的自己,以至于都不知道自己到底是什么样子的人。我觉得我已经做的很好,不需要其他人的建议和批评,我有些时候难以控制的兴奋,但是呼吸都让人开心。
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
11-27 10:46
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务