贪心
贪心
贪心算法(Greedy Algorithm)是一种在每一步选择中都采取当前状态下最好或最优的选择,从而希望导致结果是最好或最优的算法策略。
贪心算法的特点
- 局部最优选择:每一步都做出在当前看来最好的选择
- 不可回退:一旦做出选择,就不能返回重新选择
- 简单高效:实现相对简单,执行效率通常较高
贪心算法的应用场景
- 找零钱问题
- 活动选择问题
- 区间调度问题
- 最小生成树(Prim算法、Kruskal算法)
- 哈夫曼编码
贪心算法的解题步骤
- 将问题分解为若干个子问题
- 找出适合的贪心策略
- 求解每个子问题的最优解
- 将局部最优解堆叠成全局最优解
贪心算法的优缺点
优点
- 简单直观
- 解题速度快
- 适用于子问题相对独立的场景
缺点
- 不能保证求得的最后解是最优的
- 不能用来解决所有问题
注意事项
- 使用贪心算法前,需要证明贪心策略的正确性
- 贪心算法不是对所有问题都适用
- 有时贪心算法可能只能得到近似最优解
牛客代码笔记-牛栋 文章被收录于专栏
汗牛充栋,学海无涯。<br/> 内含算法知识点讲解,以及牛客题库精选例题。<br/> 学习算法,从牛栋开始。