题解 | #牛牛的会议室安排#

牛牛的会议室安排

http://www.nowcoder.com/questionTerminal/e8bfb57c81dd43898f06a39cfb7db9bc

将会议的开始时间和结束时间分别排序。每当会议开始时,所需会议室数count加一;每当会议结束时,所需会议室数count减一。最终所得最大会议室数即为答案

public:
    int minMeetingRooms(vector<vector<int> >& intervals) {
        int n = intervals.size();
        vector<int> starti = vector<int>(n);
        vector<int> endi = vector<int>(n);
        for(int i = 0; i < n; ++i)
        {
            starti[i] = intervals[i][0];
            endi[i] = intervals[i][1];
        }
        sort(starti.begin(), starti.end()); //将starti和endi排序
        sort(endi.begin(), endi.end());
        int count = 0;
        int max_count = 0;
        int i = 0;
        int j = 0;
        int k = 0;
        while(j < n)          
        {
            if(starti[i] == k)     //当会议开始时会议室数count加一
            {
                ++count;
                ++i;
            }
            if(endi[j] == k)       //当会议结束时会议室数count减一
            {
                --count;
                ++j;
            }
            ++k;
            max_count = max(max_count, count); //count中最大值为须准备会议室数
        }
        return max_count;
    }
};
全部评论
昨天面试刚手撕这道
点赞 回复 分享
发布于 2023-09-13 10:01 湖南

相关推荐

06-18 13:28
已编辑
门头沟学院 Web前端
爱睡觉的冰箱哥:《给予你300的工资》,阴的没边了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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