贪心算法学习总结
贪心算法学习随笔这段时间刷算法题最先上手的就是贪心。比起DP、回溯要考虑各种状态、记录大量中间数据贪心写起来明显轻松很多。一开始我以为贪心万能随便一道题都套“每次选最好的”思路踩了好几次坑才明白它有很明确的使用限制不能凭直觉乱写。下面结合我做题时的真实思路和代码记录一下。一、贪心到底是什么它的核心逻辑很简单处理问题时每一步只选当下看起来最优的方案选定之后不会回头修改一路做到结束。生活里找零钱、安排时间都自带这种思维。但这里有个关键前提一步步的局部最优最后合在一起必须是整体最优不满足这个前提答案一定会错。二、入门例题活动安排题目要求同一时间只能参加一个活动给出所有活动的起止时间算出最多能参加几场。我一开始试了两种思路先按开始时间排序结果安排到后面很容易被长活动占住时间换成按结束时间从小到大排序后每次挑结束最早的剩下的空闲时间最多能塞下更多活动这才是正确局部策略。importjava.util.*;classActivity{intstart,end;Activity(ints,inte){starts;ende;}}publicclassTest{publicstaticvoidmain(String[]args){ListActivityactsnewArrayList();acts.add(newActivity(1,3));acts.add(newActivity(2,4));acts.add(newActivity(3,5));acts.add(newActivity(6,7));// 按结束时间升序acts.sort((a1,a2)-a1.end-a2.end);intcount0;intlastEnd-1;for(Activitya:acts){if(a.startlastEnd){count;lastEnda.end;}}System.out.println(count);}}这段代码跑出来结果是3是这组数据下能参加的最大数量。三、零钱兑换看清贪心的局限标准人民币面额50、20、10、5、1凑金额优先选大额完全没问题。publicclassCoin{publicstaticvoidmain(String[]args){int[]coins{50,20,10,5,1};inttarget63;intcnt0;intresttarget;for(intc:coins){if(restc){cntrest/c;restrest%c;}}System.out.println(cnt);}}但如果换一组特殊面额比如只有1、3、4凑6块钱。按照贪心思路先拿4剩下两个1一共3张但最优解是两张3只用两张。这里贪心就失效了。做完这道题我才记牢不是所有求最值的题都能用贪心得先手动模拟小数据验证策略是否成立。四、能用贪心的两个条件贪心选择性每一步最优的选择最终能导向全局最优最优子结构整个问题的最优解包含子问题的最优解。两个条件缺一个贪心都不适用要换成动态规划。五、平时刷题常遇到的贪心题型区间类活动安排、区间覆盖统一思路是排序后依次筛选分配类分饼干、分糖果两边排序后一一匹配数字构造拼接数字求最大或最小值自定义排序规则行程类跳跃游戏、加油站每一步选最远可到达位置。六、贪心的优缺点优点很明显只需要一次排序加单层循环运行速度快代码量少不用开数组存大量中间状态调试起来简单。缺点也很突出适用场景窄很多复杂问题满足不了贪心条件而且正确性很难一眼看出来必须手动举例验证不能直接写代码。学习小结贪心算是入门最简单的算法但也是最容易误用的。我之前做题总懒得验证策略直接上手写代码经常出现样例过了、测试数据出错的情况。现在我自己固定一套做题流程先想一种局部最优策略手动用简单数字试一遍确认能得到全局最优再动手写代码如果模拟后结果不对直接放弃贪心改用动态规划或者暴力枚举。对比其他算法能明显感觉到贪心不需要记录过往所有状态走一步定一步逻辑直白但能不能用全看题目本身的特性。

相关新闻

Parquet过滤优化:从Row Group跳过到Bloom Filter实战

Parquet过滤优化:从Row Group跳过到Bloom Filter实战

1. 项目概述:为什么“过滤”是Parquet文件的灵魂操作Parquet不是一张静态的表格快照,而是一套精密设计的、为高效筛选而生的数据存储体系。当你看到“Parquet Best Practices: The Art of Filtering”这个标题,别被“Art”这个词迷惑——它不…

2026/8/3 6:29:39阅读更多 →
数字化知识产权管理落地案例:本地化部署的实践观察

数字化知识产权管理落地案例:本地化部署的实践观察

在企业上市筹备的关键阶段,知识产权资产的规范化管理往往成为监管审查的重点领域。专利、商标等无形资产的数量、法律状态、维护记录、费用流向,都需要清晰可溯、有据可查。然而,许多集团型企业在日常运营中,知识产权管理长期依赖…

2026/8/3 7:43:47阅读更多 →
机器学习新手避坑指南:从数据质量到模型可维护的七大理性认知

机器学习新手避坑指南:从数据质量到模型可维护的七大理性认知

1. 别急着追热点:为什么新手学机器学习,第一课不是调大模型“别学LLM!”——这句话我去年在三个不同城市的线下技术分享会上都说过,台下总有年轻人皱眉,有人直接举手问:“老师,现在面试官不都问…

2026/8/3 12:42:30阅读更多 →
Windows右键菜单终极优化指南:3步打造高效工作环境

Windows右键菜单终极优化指南:3步打造高效工作环境

Windows右键菜单终极优化指南:3步打造高效工作环境 【免费下载链接】ContextMenuManager 🖱️ 纯粹的Windows右键菜单管理程序 项目地址: https://gitcode.com/gh_mirrors/co/ContextMenuManager 还在为Windows右键菜单越来越臃肿而烦恼吗&#x…

2026/8/3 15:02:33阅读更多 →
ABAP Open SQL进阶:CASE、NULL处理、CAST与参数化CDS视图实战

ABAP Open SQL进阶:CASE、NULL处理、CAST与参数化CDS视图实战

1. 项目概述:现代ABAP开发中的SQL进阶利器 最近在重构一个老报表时,我遇到了一个典型场景:需要根据物料类型和库存状态,动态计算一个显示用的“状态描述”字段,并且某些情况下描述需要拼接,另一些情况则要显…

2026/8/3 15:02:33阅读更多 →
2026亲测:专业降AIGC平台选它准没错

2026亲测:专业降AIGC平台选它准没错

2026 年降 AIGC 工具已从早期的机械式改写升级为多维度智能优化系统,核心评估指标涵盖 AI 生成痕迹精准剔除、学术表达自然流畅度、格式结构完整性、长段落逻辑稳定性、内容原创性提升效果以及高校查重系统兼容性。本次测评深入分析 6 款主流平台,测试内…

2026/8/3 15:02:33阅读更多 →
Unity URP MipMap可视化调试工具:原理、实现与实战应用

Unity URP MipMap可视化调试工具:原理、实现与实战应用

1. 项目概述:为什么我们需要一个MipMap调试工具? 在Unity URP项目里折腾过贴图的开发者,大概都经历过这样的场景:场景里某个模型的纹理看起来有点糊,或者边缘闪烁得厉害,你怀疑是MipMap级别不对&#xff0c…

2026/8/3 15:02:33阅读更多 →
如何免费激活Adobe全家桶?Adobe-GenP 3.0完整指南

如何免费激活Adobe全家桶?Adobe-GenP 3.0完整指南

如何免费激活Adobe全家桶?Adobe-GenP 3.0完整指南 【免费下载链接】Adobe-GenP Adobe CC 2019/2020/2021/2022/2023 GenP Universal Patch 3.0 项目地址: https://gitcode.com/gh_mirrors/ad/Adobe-GenP 你是否梦想免费使用Photoshop、Premiere Pro、Illustr…

2026/8/3 15:02:33阅读更多 →
信创架构师的技术挑战与实战策略

信创架构师的技术挑战与实战策略

1. 信创浪潮下的架构师角色重塑 2019年启动的信创工程正在重构中国IT产业的基础生态。在这个特殊历史时期,系统架构师的职责边界发生了显著变化——他们不再只是技术方案的制定者,更成为国产技术生态的"搭桥人"。我亲历过三个省级政务云信创迁…

2026/8/3 15:00:32阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/3 0:29:53阅读更多 →
限时公开!某头部SaaS公司内部AI模板工厂架构文档(含5类行业模板源码+性能压测报告)

限时公开!某头部SaaS公司内部AI模板工厂架构文档(含5类行业模板源码+性能压测报告)

更多请点击: https://intelliparadigm.com 第一章:AI模板批量生成的核心价值与落地全景 AI模板批量生成正从实验性工具演进为现代软件工程的关键基础设施。它通过语义理解、上下文感知与结构化约束,将重复性高、模式明确的代码/文档/配置生成…

2026/8/3 0:33:53阅读更多 →
如何快速找回消失的网页:Web Archives浏览器扩展终极指南

如何快速找回消失的网页:Web Archives浏览器扩展终极指南

如何快速找回消失的网页:Web Archives浏览器扩展终极指南 【免费下载链接】web-archives Browser extension for viewing archived and cached versions of web pages, available for Chrome, Edge and Safari 项目地址: https://gitcode.com/gh_mirrors/we/web-a…

2026/8/3 0:20:37阅读更多 →
3个让你工作效率翻倍的Umi-OCR实战技巧:免费离线文字识别完全指南

3个让你工作效率翻倍的Umi-OCR实战技巧:免费离线文字识别完全指南

3个让你工作效率翻倍的Umi-OCR实战技巧:免费离线文字识别完全指南 【免费下载链接】Umi-OCR OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维码。…

2026/8/3 0:00:32阅读更多 →
[具身智能-181]:PC+服务器+具身机器人:构建具身智能从仿真到量产的闭环迭代混合架构

[具身智能-181]:PC+服务器+具身机器人:构建具身智能从仿真到量产的闭环迭代混合架构

PC服务器具身机器人:构建具身智能从仿真到量产的闭环迭代混合架构一、前言:具身智能需要“混合算力闭环系统”传统人工智能依赖云端静态数据集训练,不具备物理交互能力,无法适应真实世界的不确定性。具身智能(Embodied…

2026/8/3 0:00:32阅读更多 →
[具身智能-181]:大分布式通信模型对比:看懂为什么 DDS 是 ROS2 底层通信最优解

[具身智能-181]:大分布式通信模型对比:看懂为什么 DDS 是 ROS2 底层通信最优解

前言构建机器人、具身智能这类分布式实时系统,通信底座直接决定整套系统的实时性、容错性、组网能力。分布式领域长期存在 4 类经典通信架构:点对点模式、Broker 中间代理模式、广播模式、以数据为中心(DDS)模式。很多开发者疑惑&…

2026/8/3 0:00:32阅读更多 →
无损视频剪辑终极指南:如何实现快速高效的多媒体处理

无损视频剪辑终极指南:如何实现快速高效的多媒体处理

无损视频剪辑终极指南:如何实现快速高效的多媒体处理 【免费下载链接】lossless-cut The swiss army knife of lossless video/audio editing 项目地址: https://gitcode.com/gh_mirrors/lo/lossless-cut 在数字媒体创作领域,视频编辑处理的质量损…

2026/8/3 2:32:59阅读更多 →
AI辅助本科论文写作:8大工具评测与高效使用指南

AI辅助本科论文写作:8大工具评测与高效使用指南

1. 本科生论文写作的AI辅助现状本科毕业论文是每个大学生必须跨越的一道坎。记得我当年写论文时,光是文献检索就花了整整两周时间,打印的参考文献堆满了半个书桌。如今AI技术的发展为学术写作带来了革命性变化,合理使用这些工具可以节省80%以…

2026/8/3 2:33:01阅读更多 →
如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手

如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手

如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手 【免费下载链接】ticket-purchase 大麦自动抢票,支持人员、城市、日期场次、价格选择 项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase 还在为抢不到热门演唱会门票…

2026/8/3 2:33:04阅读更多 →