630. 課程表 III 貪心
阿新 • • 發佈:2022-01-28
優先選 截止時間靠後的且持續時間短的
class Solution { public: int scheduleCourse(vector<vector<int>>& courses) { int len = courses.size(); int ret = 0, cnt = 0; priority_queue<int> q; sort(courses.begin(), courses.end(), [](vector<int>& a, vector<int自己選擇的路,跪著也要走完。朋友們,雖然這個世界日益浮躁起來,只要能夠為了當時純粹的夢想和感動堅持努力下去,不管其它人怎麼樣,我們也能夠保持自己的本色走下去。>& b)->bool { return a[1] < b[1];}); for(int i = 0; i < len; i++) { if(courses[i][1] - courses[i][0] >= ret) { q.push(courses[i][0]); ret += courses[i][0]; } else if(!q.empty() && courses[i][0] < q.top()) { ret -= q.top(); q.pop(); ret += courses[i][0]; q.push(courses[i][0]); } } return q.size(); } };