第八章 (二)贪心法
贪心是一种解决问题的策略。
贪心算法就是按照贪心策略一步一步去求,当贪心选择最优时,具有贪心选择性质(最开始的贪心选择被包含在最优解中)和最优子结构性质。
与DP的区别:
贪心是自顶向下的(递归),贪心可以看作DP中的某一个选择策略,DP是全局的。
背包相关问题
最优装载问题:给出n个物体,第i个物体重量为wi.选择最多的物体,使得总重量不超过C。
每次都选择装最轻的,这是一种典型的贪心算法,它只顾眼前,却能得到最优解。
部分背包问题:有n个物体,第i个物体的重量为wi,价值为vi.在总重量不超过C的情况下让总价值尽量高。每一个物体都可以只取走一部分,价值和重量按比例计算。
(选取Vi/wi最大的,因为可以取部分,所以一定会达到重量C这一目标)
乘船问题:有n个人,第i个人重量为wi。每艘船的最大载重量均为C,且最多只能乘两个人。用最少的船装载所有人。
考虑最轻的人i,如果他和最重的人j一起做,这样是贪心的,因为眼前的浪费最少。
区间相关问题
选择不相交区间
区间选点问题
区间覆盖问题
Huffman编码
每一步都是贪心的。原问题的最优解包含子问题的最优解。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本