Maximum Number of Events That Can Be Attended LeetCode solution in C++

1
class Solution {
2
public:
3
int maxEvents(vector<vector<int>> &events) {
4
int res = 0;
5
int m = 0;
6
for (auto x : events) m = max(m, x[1]);
7

8
sort(events.begin(), events.end());
9
int j = 0;
10
priority_queue<int, vector<int>, greater<int>> pq;
11
for (int i = 1; i <= m; i++) {
12
while (!pq.empty() && pq.top() < i) // end day is less than the current day
13
pq.pop();
14

15
while (j < events.size() && events[j][0] == i) // put all events start at day i
16
pq.push(events[j++][1]);
17

18
if (!pq.empty()) // we can attend an event today
19
{
20
pq.pop(); // remove the event
21
res++; // count that event
22
}
23
}
24
return res;
25
}
26
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0