Course Schedule III LeetCode solution in C++
1class Solution {2public:3bool static cmp(vector<int> &a, vector<int> &b) {4return a[1] < b[1];5}6int scheduleCourse(vector<vector<int>> &courses) {7sort(courses.begin(), courses.end(), cmp);8int sm = 0;9priority_queue<int> pq;10for (int i = 0; i < courses.size(); i++) {11pq.push(courses[i][0]);12sm += courses[i][0]; // sum of duration of courses13// when there exists a course duration that is invalid and can't be14// completed on that day!15if (sm > courses[i][1]) {16sm -= pq.top(); // remove the biggest invalid course duration!17pq.pop();18}19}20return pq.size();21}22};