给定一个会议时间安排的数组,每个会议时间都会包括开始和结束的时间 [[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();    }};  总结  没啥东西。。
点赞 1
评论 0
全部评论

相关推荐

已经麻木了...
投递小米集团等公司10个岗位
点赞 评论 收藏
分享
07-21 12:41
已编辑
门头沟学院 Java
steelhead:不是你的问题,这是社会的问题。
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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