贪心的定义
贪心就是每一阶段都达到局部最优,从而在整体上达到最优。
举个栗子,地上一堆钱,你可以拿5张,那每次拿最大的,这就是局部最优,最后自然总钱数也是最大的。
但有些题也不能用贪心,如果你要拿有体积和价值的东西,而你的背包容量有上限,这时就不能贪心了。
贪心没有公式,也没有通用的套路,要靠经验,一般举不出反例,就尝试贪心吧,没准有奇效。(反例就是如果你贪别的看看能不能利益更大,不能,就试试贪心)
贪心一般步骤
- 把大问题分解成若干小问题
- 确定贪心策略
- 求解每个子问题的最优解
- 将子问题的最优解堆叠成全局最优解
例题
摆动序列
买卖股票
跳跃游戏2
这些题比较经典。