贪心算法的定义:
经典问题:课程安排
Leetcode 630
伪代码:
代码实现:
class Solution {
public:
int scheduleCourse(vector<vector<int>>& courses) {
sort(courses.begin(), courses.end(), [](vector<int> a, vector<int> b){return a[1] < b[1];});
priority_queue<int> heap;
int now = 0;
for (int i = 0; i < courses.size(); ++ i)
{
heap.push(courses[i][0]);
now += courses[i][0];
if (now > courses[i][1])
now -= heap.top(), heap.pop();
}
return heap.size();
}
};
本文介绍了贪心算法的基本概念,并通过课程安排问题和Leetcode 630题目,展示了贪心策略的应用。同时,提供了伪代码和实际代码实现,帮助理解贪心算法的解决步骤。
554

被折叠的 条评论
为什么被折叠?



