Description
给定一个数组
Constraints
Solution
这道题适合作为反悔贪心的第二题。关联:第一题
数组按
维护
Code
class Solution {
public:
int scheduleCourse(vector<vector<int>>& courses) {
ranges::sort(courses, [](auto &a, auto &b) {
return a[1] < b[1];
});
priority_queue<int> pq;
int sum = 0;
for(auto &c : courses) {
if(sum + c[0] <= c[1]) {
pq.emplace(c[0]);
sum += c[0];
} else if(!pq.empty()) {
auto d = pq.top();
if(c[0] < d && sum - d + c[0] <= c[1]) {
pq.pop();
pq.emplace(c[0]);
sum -= d;
sum += c[0];
}
}
}
return pq.size();
}
};