核心认知
贪心算法就是每一步都先做当前看起来最优的选择。 它和动态规划最大的区别在于:- 贪心不回头
- 贪心不枚举所有状态
- 贪心希望用局部最优推出全局最优
贪心题为什么总让人“感觉能做”
因为很多题第一眼都会让你觉得: “这一步先选最大的 / 最小的 / 最早结束的,应该没问题吧。” 真正的关键在于,这个“应该”能不能被证明。 如果你只能靠直觉,就很容易在边界情况里翻车。一个最经典的 Python 例子
区间调度是贪心里很经典的模型。- 总是优先选择结束更早的区间
贪心常见题型
贪心题经常出现在这些方向:- 区间问题
- 跳跃游戏
- 股票买卖中的部分模型
- 分发类问题
- 资源最少 / 收益最大问题
如何判断能不能用贪心
可以先问自己三个问题:- 当前最优选择会不会破坏后面的最优性?
- 能不能证明最优解一定包含当前选择?
- 有没有明显的排序规则或优先级规则?
贪心和动态规划的区别
贪心更强调:- 当前这一步怎么选
- 当前状态如何由之前状态转移而来
学习建议
建议按这个顺序练:- 分发饼干
- 摆动序列
- 最大子数组和
- 跳跃游戏
- 区间问题

