题目
给你一个会议时间安排的数组 intervals ,每个会议时间都会包括开始和结束的时间 intervals[i] = [starti, endi] ,返回 所需会议室的最小数量 。
示例 1:
输入:intervals = [[0,30],[5,10],[15,20]] 输出:2
示例 2:
输入:intervals = [[7,10],[2,4]] 输出:1
解题
方法一:记录每个时间戳的最大会议数
通过计数,开会+1, 散会-1
遍历时间戳,记录最大的会议数的状态
class Solution { public: int minMeetingRooms(vector<vector<int>>& intervals) { if(intervals.size()==0) return 0; vector<pair<int,int>> meetings; for(auto it:intervals){ meetings.push_back({it[0],1}); meetings.push_back({it[1],-1}); } sort(meetings.begin(),meetings.end()); int res=0; int count=0; for(auto& it:meetings){ count+=it.second; res=max(res,count); } return res; } };