【leetcode】253. 会议室 II

给定一个会议时间安排的数组,每个会议时间都会包括开始和结束的时间 [[s1,e1],[s2,e2],…] (si < ei),为避免会议冲突,同时要考虑充分利用会议室资源,请你计算至少需要多少间会议室,才能满足这些会议安排。

示例 1:

输入: [[0, 30],[5, 10],[15, 20]]
输出: 2
示例 2:

输入: [[7,10],[2,4]]
输出: 1

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/meeting-rooms-ii
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

思路

首先进行一下排序,然后用一个小顶堆,维护当前每个会议室的结束时间,
然后当一个新的时间安排出现的时候,只需要判断一下是否需要新申请一个会议室,还是继续使用之前的会议室。

代码

class Solution {
   
public:
    int minMeetingRooms(vector<vector<int>>& intervals) {
   
        sort(intervals.begin(), intervals.end(), [](const vector<int>& a, const vector<int>&b){
   
            return a[0] < b[0];
        });
        priority_queue<int, vector<int>, greater<int>> heap;
        for (int i = 0; i < intervals.size(); i++) {
   
            if (!heap.empty() && heap.top() <= intervals[i][0]) {
   
                heap.pop();
            }
            heap.push(intervals[i][1]);
        }
        return heap.size();
    }
};

总结

没啥东西。。

全部评论

相关推荐

合适才能收到offe...:项目岗是什么岗?我看你有段好像跟策划运营相关,如果找运营的话第三段经历写详细点儿。 个人建议是把自我评价删了换成专业技能放在工作经验上或者下面。学生会那个也可以删,把第一个包装成店铺运营,写4-6给点。第三个也是写4-6个点。注意工作内容➕部分数据。 投递的时候BOS招呼用语改一下,换成我有xx工作经验,熟练掌握xx技能样式,也可以简历截图然后直接发送。
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

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