📌 什么是贪心算法?
贪心算法是一种在每一步选择中都采取当前最优解的算法策略,通过局部最优解达到全局最优解。常用于资源分配、调度问题、编码优化等场景。
🧠 典型应用场景
- 区间调度:如活动选择问题(选择最多不重叠的活动)
- 硬币找零:用最少数量的硬币组合支付金额
- 哈夫曼编码:数据压缩中的最优前缀码生成
- 任务分配:最大化任务完成数量的调度方案
🧪 LeetCode题目推荐
- 455. Assign Cookies
⭐ 硬币找零的经典贪心问题 - 134. Gas Station
🔄 贪心在环形路径中的应用 - 402. Remove K Digits
✂️ 通过贪心策略处理字符串数字 - 121. Best Time to Buy and Sell Stock
📈 单次交易的最大利润计算
📚 学习建议
- 先掌握贪心策略的核心思想:局部最优是否能导出全局最优?
- 熟悉贪心算法的适用条件(如问题具有贪心选择性质)
- 多练习LeetCode上的经典题目,例如 55. Jump Game
- 参考本站的 算法设计基础教程 深入理解原理
🧠 扩展思考
- 为什么贪心算法无法解决所有问题?
⚠️ 例如背包问题中贪心可能无法得到最优解 - 如何验证贪心选择的正确性?
✅ 可通过数学归纳法或反证法证明