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;}
};