Non-overlapping Intervals LeetCode solution in C++

1
class Solution {
2
void solve(priority_queue<pair<int, int>, vector<pair<int, int>>, greater<pair<int, int>>> &pq,
3
int e, int &cnt) {
4
while (!pq.empty() && pq.top().first < e) {
5
e = min(e, pq.top().second);
6
pq.pop();
7
cnt++;
8
}
9
}
10

11
public:
12
int eraseOverlapIntervals(vector<vector<int>> &grid) {
13
priority_queue<pair<int, int>, vector<pair<int, int>>, greater<pair<int, int>>> pq;
14

15
for (int i = 0; i < grid.size(); i++) {
16
pq.push({grid[i][0], grid[i][1]});
17
}
18
int cnt = 0;
19
while (!pq.empty()) {
20
int e = pq.top().second;
21
pq.pop();
22
solve(pq, e, cnt);
23
}
24
return cnt;
25
}
26
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0