题解 | 主持人调度(二)

bool cmp(vector<int> a, vector<int> b) {
    if(a[0] < b[0]){
        return true;
    }
    else if( a[0] > b[0]){
        return false;
    }else{
        return a[1] > b[1];
    }
}

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) {
        // write code here
        vector<vector<int>> time;

        //for(int i = 0; i < startEnd.size();i++)
        for (auto t : startEnd) {
            vector<int> v;
            v.push_back(t[0]);
            v.push_back(0);
            vector<int> v1;
            v1.push_back(t[1]);
            v1.push_back(1);
            time.push_back(v);
            time.push_back(v1);
        }
        sort(time.begin(), time.end(), cmp);
        int conout = 0;
        int max = 0;
        for (auto t : time) {
            if (t[1] == 0) {
                conout++;
                if (conout > max) {
                    max = conout;
                }
            } else {
                conout--;
            }
        }
        return max;
    }
};

全部评论

相关推荐

牛至超人:把哈工大,再加大加粗,看见闪闪发光的哈工大字样,面试官直接流口水
投递字节跳动等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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