题解 | #主持人调度(二)#

主持人调度(二)

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

#include <queue>
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 计算成功举办活动需要多少名主持人
     * @param n int整型 有n个活动
     * @param startEnd int整型vector<vector<>> startEnd[i][0]用于表示第i个活动的开始时间,startEnd[i][1]表示第i个活动的结束时间
     * @return int整型
     */
    int minmumNumberOfHost(int n, vector<vector<int> >& startEnd) {
        if (n == 1) return n;
        sort(startEnd.begin(),startEnd.end(), compare);
        //定义一个小顶堆来存储最快的活动结束时间
        priority_queue<int, vector<int>, greater<int>> minEndMap;

        int minHost = 0;
        int currentHostIndex = 0;
        for (const vector<int>& activity : startEnd){
            int start = activity[0];
            int end = activity[1];

            while (!minEndMap.empty() && start >= minEndMap.top()){
                //假如小顶堆有值并且当前最早结束的时间小于当前活动开始的时间
                //意味着上一个活动结束,当前活动可以开始了
                minEndMap.pop();
                //释放一个主持人
                currentHostIndex--;
            }

            minEndMap.push(end);
            currentHostIndex++;

            minHost = max(currentHostIndex, minHost);
        }

        return minHost;
    }

    static bool compare(const vector<int>& a, const vector<int>& b){
        return a[0] < b[0];
    }
};

全部评论

相关推荐

05-14 20:34
门头沟学院 Java
窝补药贝八股:管他们,乱说,反正又不去,直接说680
点赞 评论 收藏
分享
叶扰云倾:进度更新,现在阿里云面完3面了,感觉3面答得还行,基本都答上了,自己熟悉的地方也说的比较细致,但感觉面试官有点心不在焉不知道是不是不想要我了,求阿里收留,我直接秒到岗当阿里孝子,学校那边的房子都退租了,下学期都不回学校,全职猛猛实习半年。这种条件还不诱人吗难道 然后现在约到了字节的一面和淘天的复活赛,外加猿辅导。华为笔试完没动静。 美团那边之前投了个base广州的,把我流程卡麻了,应该是不怎么招人,我直接简历挂了,现在进了一个正常的后端流程,还在筛选,不知道还有没有hc。
点赞 评论 收藏
分享
这不纯纯作弊了吗😢😢😢
编程界菜鸡:信这个的这辈子有了,这智商你靠啥都没用
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务