题解 | 主持人调度(二)

主持人调度(二)

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

#include <algorithm>
class Solution {
public:
    int minmumNumberOfHost(int n, vector<vector<int> >& startEnd) {
        //需要检测每个时间所需要的主持人,也就是活动个数,
        //如果只对开始时间进行排序,遍历开始时间时,需要记录已经开始的活动的结束时间,并且每轮需要检测有多少活动结束,并开启本轮活动;
        vector<int> start, end;

        for(int i=0; i<n; ++i){     //把开始时间和结束时间分别放在两个数组中,并排序;
            start.push_back(startEnd[i][0]);
            end.push_back(startEnd[i][1]);
        }
        sort(start.begin(), start.end());
        sort(end.begin(), end.end());       

        int i=0, j=0, hosts = 0, maxhosts = 0;  //i时开始时间点,j是结束时间点

        while(i < n){
            if(start[i] < end[j]){  //开始时间小于结束时间,表示没有活动结束,但有新的活动开始了,结束时间不一定是本开始时间对应的,但是也说明了这个活动开始了;
                ++hosts;
                maxhosts = max(hosts, maxhosts);
                ++i;
            }else{   //开始时间小于或者大于检测的结束时间,表示结束时间对应的活动结束了,
                hosts--;
                ++j;
            }
        }

        return maxhosts;
    }
};

全部评论

相关推荐

03-29 17:05
门头沟学院 Java
asdasdasda...:我前段时间找工作焦虑,有几天连续熬夜熬穿了,然后心脏突然不舒服,立马躺床上睡觉了,然后第二天还是不舒服,去看医生说是心率不齐,吓得我后面天天早早睡觉,调养身体,过了好几天才好过来。所以真的,工作这些东西哪有那么重要,最多钱多一点钱少一点,降低物欲。活着才是最重要的,现在想想真的后怕
如何排解工作中的焦虑
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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