代码编织梦想

😄 跟着Carl哥(公众号:代码随想录)学学贪心算法咯~ 。贪心的本质是选择每一阶段的局部最优,从而达到全局最优。举一个例子:

  • 例如,有一堆钞票,你可以拿走十张,如果想达到最大的金额,你要怎么拿?指定每次拿最大的,最终结果就是拿走最大数额的钱。每次拿最大的就是局部最优,最后拿走最大数额的钱就是推出全局最优。
  • 再举一个例子如果是 有一堆盒子,你有一个背包体积为n,如何把背包尽可能装满,如果还每次选最大的盒子,就不行了。这时候就需要动态规划。动态规划的问题在下一个系列会详细讲解。

贪心算法并没有什么固定的套路。纯靠自己手动模拟,如果模拟可行,就可以试一试贪心策略,如果不可行,可能需要动态规划了。

那如何验证可不可以用贪心算法呢?最好用的策略就是举反例,如果想不到反例,那么就试一试贪心吧。Carl哥说面试一般不会叫证明(数学归纳法 or 反证法)贪心算法的合理性,代码写出来跑过测试用例即可,或者自己能自圆其说理由就行了。

贪心有时候就是常识性的推导,所以会认为本应该就这么做!

做题的时候,只要想清楚 局部最优

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_43646592/article/details/128750928

关于leetcode刷题详细介绍_东心十的博客-爱代码爱编程

  虽然刷题一直饱受诟病,不过不可否认刷题确实能锻炼我们的编程能力,相信每个认真刷题的人都会有体会。现在提供在线编程评测的平台有很多,比较有名的有 hihocoder,LintCode,以及这里我们关注的 LeetCode。

【Leetcode刷题记录】-简单难度-贪心算法-爱代码爱编程

【Leetcode刷题记录】-简单难度-贪心算法 一、贪心算法1.基本概念2.贪心算法的基本思路3.算法存在的问题二、与贪心算法相关的题目1.分割平衡字符串题目代码2.分发饼干题目思路代码3.模拟行走机器人题目思路代码总结 一、贪心算法 1.基本概念 所谓贪心算法是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上

LeetCode分类刷题----算法思想-爱代码爱编程

算法思想 算法思想双指针141. 环形链表问题思路881. 救生艇问题思路344. 反转字符串问题思路27. 移除元素问题思路167. 两数之和 II - 输入有序数组问题代码633. 平方数之和问题思路345. 反转字符串中的元音字母问题思路680. 验证回文字符串 Ⅱ问题思路88. 合并两个有序数组问题思路524.通过删除字母匹配到字典里最长单

LeetCode刷题--贪心算法-爱代码爱编程

455. 分糖果 def findContentChildren(self, g, s): """ :type g: List[int] :type s: List[int] :rtype: int """ g.sort() s.sort() i,j,num = 0,0,0 whil

《动态规划》:01背包、完全背包、多重背包、01背包组合、完全背包组合&排列问题-爱代码爱编程

  学习之前建议收听音乐:你的背包🎒~ ⭐🚂⭐背包问题一般模板: 【注:这个一般性模板作为一个总结的东西,先把后面背包问题理解了再来看就清晰很多。当然有时候模版公式要根据实际问题修改】  1️⃣内外循环分类: 类型模板01背包问题外循环nums,内循环target,target倒序且target>=nums[i]; 【注:01背包内外循环不能

leetcode刷题/贪心算法 45. 跳跃游戏 II-爱代码爱编程

45. 跳跃游戏 II 题意: 给你一个非负整数数组 nums ,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 你的目标是使用最少的跳跃次数到达数组的最后一个位置。 假设你总是可以到达数组的最后一个位置。 示例 1: 输入: nums = [2,3,1,1,4] 输出: 2 解释: 跳到最后

LeetCode刷题记录--递归-爱代码爱编程

文章目录 1.剑指 Offer 64. 求1+2+…+n2.1823. 找出游戏的获胜者3.面试题 08.05. 递归乘法4.剑指 Offer 62. 圆圈中最后剩下的数字5.344. 反转字符串6.反转链表7.剑指 Offer 06. 从尾到头打印链表8.486. 预测赢家9.60. 排列序列 1.剑指 Offer 64. 求1+2+…+n

leetcode刷题笔记--贪心算法_官乐的博客-爱代码爱编程

文章目录 算法介绍练习题目1. 455.分发饼干2. 376.摆动序列3. 55.跳跃游戏 总结 算法介绍 贪心算法(又称贪婪算法,Greedy algorithm)是指,在对问题求解时,总是做出在当