贪心算法
- 对问题求解的时候,总是做出在当前看来是最好的做法
- 适用场景:问题能够分解成子问题来解决,子问题的最优解能递推到最终问题的最优解
- 与动态规划的不同:对每个子问题的解决方案都做出选择,不能回退
比较
- 回溯算法:重复计算
- 贪心算法:永远局部最优
- 动态规划:记录局部最优子结构,多种记录值
分发饼干
- g:每个孩子都有一个胃口值,s:每块饼干都有一个尺寸,输出最多满足孩子的数量
- [1,2,3],[1,1] => 1, [1,2],[1,2,3] => 2
思路:优先使用最小的饼干满足最小的胃口
- 饼干、孩子从小到大排序
- 遍历饼干和孩子,看g<=s是否成立,满足=>下一个孩子,不满足=>下一个饼干
|
|