当前位置: 首页 > article >正文

代码随想录 | 贪心算法总结

贪心理论基础

在贪心系列开篇词贪心算法理论基础中,我们就讲解了大家对贪心的普遍疑惑。

  • 贪心很简单,就是常识?

贪心思路往往很巧妙,并不简单。

  • 贪心有没有固定的套路?

贪心无套路,也没有框架之类的,需要多看多练培养感觉才能想到贪心的思路。

贪心简单题

以下三道题目就是简单题,大家会发现贪心感觉就是常识。是的,如下三道题目,就是靠常识,但我都具体分析了局部最优是什么,全局最优是什么,贪心也要贪的有理有据!

  • 分发饼干
  • K次取反后最大化的数组和
  • 柠檬水找零

贪心中等题

贪心中等题,靠常识可能就有点想不出来了。开始初现贪心算法的难度与巧妙之处。

  • 摆动序列
  • 单调递增的数字

贪心解决股票问题

大家都知道股票系列问题是动规的专长,其实用贪心也可以解决,而且还不止就这两道题目,但这两道比较典型,我就拿来单独说一说

  • 买卖股票的最佳时机Ⅱ

两个维度权衡问题

在出现两个维度相互影响的情况时,两边一起考虑一定会顾此失彼,要先确定一个维度,再确定另一个一个维度。

  • 分发糖果
  • 根据身高重建队伍

贪心难题

这里的题目如果没有接触过,其实是很难想到的,甚至接触过,也一时想不出来,所以题目不要做一遍,要多练!

贪心解决区间问题

关于区间问题,大家应该印象深刻,有一周我们专门讲解的区间问题,各种覆盖各种去重。

  • 跳跃游戏
  • 跳跃游戏Ⅱ
  • 用最少数量的箭引爆气球
  • 无重叠区间
  • 划分字母区间
  • 合并区间

其他难题

最大子序和其实是动态规划的题目,但贪心性能更优,很多同学也是第一次发现贪心能比动规更优的题目。

加油站可能以为是一道模拟题,但就算模拟其实也不简单,需要把while用的很娴熟。但其实是可以使用贪心给时间复杂度降低一个数量级。

最后贪心系列压轴题目监控二叉树,不仅贪心的思路不好想,而且需要对二叉树的操作特别娴熟,这就是典型的交叉类难题了。

总结

这个图是 代码随想录知识星球 (opens new window)成员:海螺人 (opens new window)所画,总结的非常好,分享给大家。


http://www.kler.cn/news/283372.html

相关文章:

  • 负载均衡OJ项目详细解剖
  • Error running tomcat: Can‘t find catalina.jar
  • 给自己复盘的随想录笔记-哈希表
  • Furion+SqlSugar+Swagger企业级后端工程师 - 学习路线总目录
  • 【IEEE独立出版,快检索 | 高录用】第五届IEEE信息科学与教育国际学术会议(ICISE-IE 2024,12月20-22)
  • 如何禁止电脑访问网站
  • 一维/二维高斯分布的负对数似然推导
  • 【日常记录-Linux】.tar.xz、.tar.bz2、tar.gz解压
  • 8、嵌套循环 - 循环中的循环 - 课件
  • MySQL表分区与分表:概念、规则及应用案例
  • MyPrint打印设计器(四)vue3 函数式调用组件
  • vue3 使用vue-masonry加载更多,重新渲染
  • Java设计模式之装饰器模式详细讲解和案例示范
  • 深度学习:图像数据分析的革命
  • HTML静态网页成品作业(HTML+CSS)——电影肖申克的救赎介绍设计制作(1个页面)
  • jmeter连接mysql数据库以及常规用法
  • node环境安装、vue-cli搭建过程、element-UI搭建使用过程
  • 生产监控系统与生产控制系统区别
  • 【实践经验】端口被占用问题:listen tcp:bind:only one usage of each socket address
  • 文心智能体-梦想目标实现助手-实现你的老板梦
  • Golang小项目(1)
  • asp.net core在win上的发布和部署
  • 命令模式与事件驱动编程:如何将两者结合以优化系统设计
  • 卸载重装redis
  • Python新手:学习 itertools.takewhile 迭代右过滤
  • 如何使用 Go 语言开发微服务
  • MIT 6.5840(6.824) Lab 4:Fault-tolerant Key/Value Service 设计实现
  • 可达性分析算法是什么?用于什么场景?解决什么问题?
  • 淘宝API接口解析: item_fee获取淘宝商品运费接口
  • 钉钉打包以后发送报错 org.apache.tomcat.util.codec.binary.Base64.encodeBase64([B 解决描述