贪心专题

时间调度专题

时间调度问题

1、主持人调度
排序+优先队列
图片说明

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     * 计算成功举办活动需要多少名主持人
     * @param n int整型 有n个活动
     * @param startEnd int整型vector<vector<>> startEnd[i][0]用于表示第i个活动的开始时间,startEnd[i][1]表示第i个活动的结束时间
     * @return int整型
     */
    static bool cmp(vector<int>& a,vector<int>& b){
        if(a[0]==b[0]) return a[1]<b[1]; //开始时间从小到大
        return a[0]<b[0]; //开始时间相同 结束早排在前
    }
    int minmumNumberOfHost(int n, vector<vector<int> >& startEnd) {
        // write code here
        priority_queue<int,vector<int>,greater<int>>pq;//小顶堆
        sort(startEnd.begin(),startEnd.end(),cmp);
        //pq.push(INT_MIN);
        int ans = 0;
        for(int i=0;i<startEnd.size();++i){
            if(!pq.empty() && startEnd[i][0]>=pq.top()){
                //不重合 说明有一个主持人能空闲出来
                pq.pop();
            }
            //继续添加下一个主持任务
            pq.push(startEnd[i][1]);
        }
        //最终堆的大小即最大需要同时开展的活动数
        return pq.size();
    }
};
全部评论

相关推荐

2025-12-28 16:32
重庆邮电大学 Java
程序员花海:1.技能放最后,来面试默认你都会,技能没啥用 2.实习写的看起来没啥含金量,多读读部门文档,包装下 接LLM这个没含金量 也不要用重构这种 不会给实习生做的 3.抽奖这个还是Demo项目,实际在公司里面要考虑策略,满减,触发点,触发规则 库存 之类的,不是这个项目这么简单 4.教育背景提前,格式为 教育背景 实习 项目 技能 自我评价
简历被挂麻了,求建议
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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