贪心算法小结

这篇具有很好参考价值的文章主要介绍了贪心算法小结。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、分发饼干

1.注意判断条件的短路效应,先判断下标,防止出现下标越界的情况;

2.优先将大饼干先给胃口大的吃。

2、摆动序列

相当于寻找极值点的过程,predif和curdif分别记录前一点和当前点与前一元素的差值,两者异号的话,result++

删除单调坡度上的节点

贪心算法小结

 3、最大子数组和

贪心:当连续和出现负数的时候立马放弃。

DP:dp[j]表示到下标j为止,连续子数组的最大和;有两种情况来:1.加在上一个上面 2.从这个数开始另起山头。

4.跳跃游戏

贪心:跳跃覆盖范围能否覆盖终点

注意 for循环里 i<=cover,cover为目前可覆盖的最大范围

5.跳跃游戏II

贪心:当前覆盖范围与下一步的覆盖范围,如果达到当前覆盖范围的最远位置但还没到终点,就需要再走一步,同时判断下一步的最大覆盖范围能不能到达终点。

6、按K次取反后最大化的数组和

将数组按绝对值大小排序,优先取反负数;如果还有次数剩余,就取反最小的数。

(当时用的方法是:每次都翻转最小的值,每次都得更新,k*n的时间复杂度,每次都得找一下当前最小的值)

7、加油站

判断当前站点的剩余油量和是否<0

8、分发糖果

从两个方向进行比较,从左到右而言,找到右边比左边大的情况,就在i-1的情况上多分一个糖果;从右往左,出现左边比右边大的情况,则取i+1的情况下+1和i的最大值。

9、柠檬水找零

记录每次收钱后,5元与10元的个数,在收入20需要找零15时,有10元优先使用10元,因为10元只能在此时找零,而5元的用处更多;此外20元的个数无需记录,因为它不参与找零。 文章来源地址https://www.toymoban.com/news/detail-427931.html

到了这里,关于贪心算法小结的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【经典LeetCode算法题目专栏分类】【第5期】贪心算法:分发饼干、跳跃游戏、模拟行走机器人

    《博主简介》 小伙伴们好,我是阿旭。专注于人工智能AI、python、计算机视觉相关分享研究。 ✌ 更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍 感谢小伙伴 们点赞、关注! class   Solution :      def   findContentChildren ( self ,  g :  List [ int ],  s

    2024年02月04日
    浏览(39)
  • 算法训练day31贪心算法理论基础Leetcode455分发饼干376摆动序列53最大子序和

    文章链接 代码随想录 (programmercarl.com) 说实话贪心算法并没有固定的套路 。 最好用的策略就是举反例,如果想不到反例,那么就试一试贪心吧 。 面试中基本不会让面试者现场证明贪心的合理性,代码写出来跑过测试用例即可,或者自己能自圆其说理由就行了 。 刷题或者面

    2024年02月20日
    浏览(32)
  • Day31 贪心算法 part01 理论基础 455.分发饼干 376.摆动序列 53.最大子序和

    什么是贪心 贪心的本质是选择每一阶段的局部最优,从而达到全局最优 。 这么说有点抽象,来举一个例子: 例如,有一堆钞票,你可以拿走十张,如果想达到最大的金额,你要怎么拿? 指定每次拿最大的,最终结果就是拿走最大数额的钱。 每次拿最大的就是局部最优,最

    2024年01月19日
    浏览(32)
  • 算法刷题Day 31 分发饼干+摆动序列+最大子序列和

    分发饼干其实有很多种写法,但是下面这种贪心的解法是最好理解,也最好解释的 我的其他解法 贪心算法 这道题用贪心算法要考虑的细节有很多。 动态规划 有点难(甚至涉及到了线段树),等后面二刷的时候再来学好了 暴力解法 超时了 贪心算法 贪心算法的代码写起来简

    2024年02月15日
    浏览(30)
  • 贪心算法|135.分发糖果

    力扣题目链接 看着是困难题,其实仔细理解并不是很吓人。 这题的重点在如何遍历。  vectorint candyVec(ratings.size(), 1); 还有它是个啥? vector int myVector(num); 或者 vector int myVector(n,num); 类似于resize的用法  函数原型: void resize (size_type n); void resize (size_type n, const value_type val);  作

    2024年04月10日
    浏览(32)
  • 贪心算法小结

    1、分发饼干 1. 注意判断条件的短路效应 ,先判断下标,防止出现下标越界的情况; 2.优先将大饼干先给胃口大的吃。 2、摆动序列 相当于寻找极值点的过程,predif和curdif分别记录前一点和当前点与前一元素的差值,两者异号的话,result++ 删除单调坡度上的节点  3、最大子数

    2024年02月01日
    浏览(23)
  • 关于贪心算法的一个小结

    下面的内容主要参考了数据结构与算法之美。 贪心算法的应用有: 霍夫曼编码(Huffman Coding) Prim和Kruskal最小生成树算法 01背包问题(当允许取部分物品的时候) 分糖果 我们有m个糖果和n个孩子。我们现在要把糖果分给这些孩子吃,但是糖果少,孩子多(mn),所以糖果只能分

    2024年02月16日
    浏览(23)
  • 455. 分发饼干 - 力扣(LeetCode)

    假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。 对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j] 。如果 s[j] = g[i],我们可以将这个饼干 j 分配给孩子 i ,这

    2024年01月25日
    浏览(35)
  • LeetCode(力扣)455. 分发饼干Python

    https://leetcode.cn/problems/assign-cookies/ 从大遍历 从小遍历

    2024年02月09日
    浏览(20)
  • Mybatis mapper.xml 判断条件写法注意

    1.判断String是否为空 if test=\\\"stringParam != null and stringParam != \\\'\\\'\\\"/if 2.判断Integer是否大于0 判断等于  when test=\\\"item.mark == 1\\\"\\\" 3.判断List是否不为空 5.判断字符串是否等于特定字符(比如此处的user)

    2024年02月16日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包