Leetcode 253.会議室II
記事の目次問題説明 問題解決報告 実装コード 問題の説明
会議時間の配列を指定します.各会議時間は開始と終了の時間を含みます.[s 1,e 1],[s 2,e 2]⋯_](s2,e 2)[s 1,e 1],[s 2,e 2]会議の衝突を避けるために、会議室の資源を十分に利用することを考慮して、少なくともどれぐらいの会議室が必要かを計算してください.これらの会議のスケジュール入力を満たすことができます.[[0,30]、[5,20],[15,20]]入力:[0,30],[5,10,20]入力:出力2:出力
解題報告
会議室の使用が終わったら、他の会議に使えるようにします.最小の山を作って、各会議の終了時間を保存します.毎回、山から元素を取り出します.要素が現在の会議の開始時間より小さい場合、現在空いている会議室があると表しています.スタックの中の要素をイジェクトし、現在の会議の終了時間を押し込みます. 要素が現在の会議の開始時間より大きい場合、最初に終了した会議室は現在空いていないという意味で、会議室を再起動する必要があります.
最後に山の中にいくつかの元素があると、どれぐらいの会議室が必要ですか?
コードを実現
会議時間の配列を指定します.各会議時間は開始と終了の時間を含みます.[s 1,e 1],[s 2,e 2]⋯_](s2,e 2)[s 1,e 1],[s 2,e 2]会議の衝突を避けるために、会議室の資源を十分に利用することを考慮して、少なくともどれぐらいの会議室が必要かを計算してください.これらの会議のスケジュール入力を満たすことができます.[[0,30]、[5,20],[15,20]]入力:[0,30],[5,10,20]入力:出力2:出力
解題報告
会議室の使用が終わったら、他の会議に使えるようにします.最小の山を作って、各会議の終了時間を保存します.毎回、山から元素を取り出します.
最後に山の中にいくつかの元素があると、どれぐらいの会議室が必要ですか?
コードを実現
class Solution {
public:
int minMeetingRooms(vector<vector<int>>& intervals) {
sort(intervals.begin(),intervals.end());
priority_queue<int, vector<int>, greater<int>> pq;
int s,e;
for(int i=0;i<intervals.size();i++){
s=intervals[i][0];
e=intervals[i][1];
if(pq.size()==0){
pq.push(e);
continue;
}
if(pq.top()<=s){
pq.pop();
}
pq.push(e);
}
return pq.size();
}
};