贪心算法

贪心算法 是一类构造性 算法,它在求解最优化问题的过程中始终只做局部最优的选择 ,并且不在以后对已经做出的选择进行回溯或修改 。使用贪心算法需要证明局部最优解 等于全局最优解

贪心可以说是算法的基础,几乎所有算法都蕴含了贪心的思想。同时,贪心更多是一种思想而不是具体的算法,且常常与别的算法配合使用,但也有如反悔贪心这种易单独出现的较为固定的套路,实际训练中更多以多刷题总结经验为主,这里重点讲解一下反悔贪心。

知识点

  • 贪心算法不能保证对所有问题都得到全局最优,除非你只是用于骗分,否则必须进行验证
  • 在内容是无序的时候,我们常常会进行一下排序之后进行贪心
  • 思考贪心时往往先从直觉出发,然后通过反证法证明没有解法更优或者可以通过反悔贪心进行修正

反悔贪心

反悔贪心 (也称为可反悔的贪心、反悔贪心算法)是一种改进的贪心算法策略,它在传统贪心算法的基础上增加了"反悔"机制,从而在某些问题上能得到更优的解。核心思想是传统贪心算法每一步都做出当前最优选择,且不可更改 。而反悔贪心允许我们在后续步骤中撤销之前的选择,替换为更优的决策,从而修正可能产生的局部最优错误。

实际运用中通常将当前的最优解先当作全局最优解,且使用优先队列 记录做过的选择,当之后有更好的选择时,替换当前队列中最不优的操作。

相关推荐
码流怪侠11 分钟前
2026年8月GitHub热榜深度拆解:Agent Skills席卷开源圈,一个“技能包“收割5万星
算法·程序员·github
hold?fish:palm15 分钟前
30 两两交换链表中的节点
数据结构·算法·链表
Nil20825 分钟前
leetcode 98验证二叉搜索树
算法·leetcode·职场和发展
不正经学生44 分钟前
C语言结构体:自定义数据类型,让变量打包出行
java·c语言·开发语言·数据结构·算法
cxr8281 小时前
数学的本质:关系、模式与不变量的结构世界
人工智能·算法·机器学习
初夏睡觉2 小时前
原创题目 - 空壳恋爱
c++·算法·dp·oi·信息学·原创题目·值得挑战的题目
Buke..3 小时前
【APP 逆向】哔哩哔哩 sign 参数逆向(下):OLLVM 混淆还原 sign 算法
java·javascript·爬虫·python·算法
linux-hzh3 小时前
百日算法修炼 · Day 15
java·算法
闲研随记3 小时前
【文献阅读 ICLR 2026】RL算法:DECS
算法·llm·强化学习·iclr·rl
量化小c3 小时前
一行代码查 BTCUSDT 和 AAPL 最新价?QuantDash 统一多市场实时行情接口实战
后端·算法·github