説明文
一連の会議スケジュールが与えられた場合、各会議時間には開始時間と終了時間が含まれます[[s1、e1]、[s2、e2]、...](si <ei)。会議室のリソースを最大限に活用することを検討してください。これらの会議の手配を満たすために必要な会議室の数を少なくとも計算してください。
例1:
入力:[[0、30]、[5、10]、[
15、20 ]] 出力:2
例2:
入力:[[7,10]、[2,4]]
出力:1
アイデア
- 方法1:優先キュー-最小ヒープ
1.会議開始時刻で並べ替え;
2.会議をトラバースして会議終了時刻の最小ヒープを確立します。現在の会議開始時刻が最上位の会議の終了時刻よりも長い場合、最上位の会議は削除および更新されます現在の会議
class Solution {
public:
static bool cmp(vector<int> a, vector<int> b){
return a[0]<b[0];
}
int minMeetingRooms(vector<vector<int>>& intervals) {
sort(intervals.begin(),intervals.end(),cmp);
priority_queue<int, vector<int>, greater<int>> heap;
for(auto iter:intervals){
if(!heap.empty()&&heap.top()<=iter[0]){
heap.pop();
}
heap.push(iter[1]);
}
return heap.size();
}
};