Course Schedule III LeetCode solution in Python
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 be completed on that day!14if(sm>courses[i][1]) {15sm-=pq.top(); // remove the biggest invalid course duration!16pq.pop();17}18}19return pq.size();20}21};