Non-overlapping Intervals LeetCode solution in C++
1class Solution {2void solve(priority_queue<pair<int, int>, vector<pair<int, int>>, greater<pair<int, int>>> &pq,3int e, int &cnt) {4while (!pq.empty() && pq.top().first < e) {5e = min(e, pq.top().second);6pq.pop();7cnt++;8}9}1011public:12int eraseOverlapIntervals(vector<vector<int>> &grid) {13priority_queue<pair<int, int>, vector<pair<int, int>>, greater<pair<int, int>>> pq;1415for (int i = 0; i < grid.size(); i++) {16pq.push({grid[i][0], grid[i][1]});17}18int cnt = 0;19while (!pq.empty()) {20int e = pq.top().second;21pq.pop();22solve(pq, e, cnt);23}24return cnt;25}26};