1353. 最多可以參加的會議數目
題目鏈接:1353. 最多可以參加的會議數目
代碼如下:
class Solution {
public:int maxEvents(vector<vector<int>>& events) {int mx = 0;for (auto& e : events) {mx = max(mx, e[1]); // 找到最大的結束時間}//按照開始時間分組vector<vector<int>> groups(mx + 1);for (auto& e : events) {groups[e[0]].push_back(e[1]); // 將結束時間添加到對應的開始時間組中}int res = 0;priority_queue<int, vector<int>, greater<>> pq;// 優先隊列,按照結束時間從小到大排序for (int i = 0;i <= mx;i++) {//刪除過期會議while (!pq.empty() && pq.top() < i) {pq.pop();}//新增可以參加的會議for (int end_day : groups[i]) {pq.push(end_day);}//參加一個結束時間最早的會議if(!pq.empty()) {pq.pop(); // 參加會議res++; // 計數}}return res;}
};