贪心算法介绍

贪心算法介绍

  • [一. 什么是贪心算法?](#一. 什么是贪心算法?)
  • [二. 贪心算法的特点](#二. 贪心算法的特点)
  • [三. 如何学习贪心?](#三. 如何学习贪心?)

一. 什么是贪心算法?

  1. 贪心算法,或者说是贪心策略:企图用局部最优找出全局最优。

  2. 把解决问题的过程分成若干步;

  3. 解决每一步时,都选择"当前看起来最优的"解法;

  4. "希望"得到全局的最优解。

二. 贪心算法的特点

对于大多数题目,贪心策略的提出并不是很难,难的是证明它是正确的。因为贪心算法相较于暴力枚举,每一步并不是把所有情况都考虑进去,而是只考虑当前看起来最优的情况。但是,局部最优并不等于全局最优,所以我们必须能严谨的证明我们的贪心策略是正确的

一般证明策略有:反证法,数学归纳法,交换论证法等。

当问题的场景不同时,贪心的策略也会不同。因此,贪心策略的提出是没有固定的套路和模板的。我们后面讲的题目虽然分类,但是大家会发现具体的策略还是相差很大。
因此,不要妄想做几道贪心题目就能遇到一个会一个。有可能做完 50 道贪心题目之后,第 51 道还是没有任何思路。

三. 如何学习贪心?

先有一个认知:做了几十道贪心的题目,遇到一个新的又没有思路,这时很正常的现象,把心态放平。

  1. 前期学习的时候,重点放在各种各样的策略上,把各种策略当成经验来吸收;

  2. 在平常学习的时候,我们尽可能的证明一下这个贪心策略是否正确,这样有利于培养我们严谨的思维。但是在比赛中,能想出来一个策略就已经不错了,如果再花费大量的时间去证明,有点得不偿失。这个时候,如果根据贪心策略想出来的若干个边界情况都能过的话,就可以尝试去写代码了

相关推荐
w_zero_one2 小时前
递归算法(一)
java·开发语言·算法
风影同志783243 小时前
20 个比特能装下多少行情?——实测拆解 Kronos 的 K 线分词器
算法
写的都是BUG4 小时前
APK 里的钥匙,一直就放在门口:聊聊加固真正该做什么
前端·算法
地平线开发者4 小时前
CLIP 的零样本分类:一组文本如何变成图像分类器?
算法
京东云开发者5 小时前
从“会生成”到“能生产”:萤火虫 AIGC 平台的 AI Infra 实践
算法·aigc·产品
youshi66685 小时前
PID——算法改进
算法
一只不想敲代码的程序猿6 小时前
如何更高效地拆解问题?
算法
微尘hjx7 小时前
【Deep-OC-SORT 02】多轨迹算法Deep-OC-SORT-相对 OC-SORT 的改进点
人工智能·算法·yolo·目标跟踪·视觉检测·ultralytics·deep-oc-sort
梦帮科技8 小时前
意识启发式量子隧穿退火算法用于全局优化 (CITA) 完整技术指南
网络·人工智能·算法·量子计算·模拟退火算法
一去不复返的通信er9 小时前
排序 + 双指针:力扣15三数之和
算法·leetcode