1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| class Solution { public: int scheduleCourse(vector<vector<int>>& courses) { sort(courses.begin(), courses.end(), [](auto& v1, auto& v2) { return v1[1] < v2[1]; }); priority_queue<int> pq; int endTime = 0; for(auto& course : courses) { if(endTime + course[0] <= course[1]) { endTime += course[0]; pq.push(course[0]); } else if(!pq.empty() && course[0] < pq.top()) { endTime -= pq.top(); endTime += course[0]; pq.pop(); pq.push(course[0]); } } return pq.size(); } };
|
设之前的是t1 + t2 + .... t_j-1 + t_j + t_j+1 +.....tk <= dk
那么将t_j
替换成t_i
后,由于后者小于前者,所以上述关系仍旧存在,而由于d_i <= d_k
,所以都成立。