贪心的概念

文章目录

贪心的定义和思想

贪心是一种算法思想,其含义是在求解过程中每一步总是做出当前的最优选择。贪心思想不考虑全局最优,只考虑局部最优。

贪心思想在之前已经有所涉及,哈夫曼树的构建就是基于贪心的思想,图算法中的单源最短路径和最小生成树也是基于贪心的思想。

由于贪心思想为只考虑局部最优,因此使用贪心策略得到的结果不一定是全局最优解。

贪心问题的求解思路为,将问题分解成多个子问题,对于每个子问题得到局部最优解,将子问题的局部最优解合成原始问题的解。

贪心的要素

贪心的要素有两点,一是贪心选择性质,二是最优子结构性质。

贪心选择性质的含义是问题的全局最优解可以通过贪心选择达到,每次贪心选择都得到局部最优解,并将问题简化成规模更小的子问题。

最优子结构性质的含义是问题的最优解包含子问题的最优解。

只有当问题具备贪心的要素时才能使用贪心策略得到最优解。使用贪心策略时,需要证明贪心策略可以得到全局最优解,即问题具有贪心选择性质和最优子结构性质,证明的思路是不使用贪心策略时不可能得到更优解。

贪心的优点和缺点

贪心的优点是实现较为简单,且时间复杂度通常较低。当数据规模较大时,使用贪心策略可以在较短的时间内得到答案。

贪心的缺点是不能确保得到全局最优解,当局部最优策略与全局最优策略不一致时,使用贪心策略得到的解一般不是全局最优解。

目录

  1. 贪心题目:和有限的最长子序列
  2. 贪心题目:非递增顺序的最小子序列
  3. 贪心题目:数组大小减半
  4. 贪心题目:玩筹码
  5. 贪心题目:种花问题
  6. 贪心题目:保持城市天际线
  7. 贪心题目:分割平衡字符串
  8. 贪心题目:卡车上的最大单元数
  9. 贪心题目:数组拆分
  10. 贪心题目:三角形的最大周长
  11. 贪心题目:K 次取反后最大化的数组和
  12. 贪心题目:柠檬水找零
  13. 贪心题目:分发饼干
  14. 贪心题目:运动员和训练师的最大匹配数
  15. 贪心题目:优势洗牌
  16. 贪心题目:递减元素使数组呈锯齿状
  17. 贪心题目:划分字母区间
  18. 贪心题目:交换字符使得字符串相同
  19. 贪心题目:令牌放置
  20. 贪心题目:两地调度
  21. 贪心题目:最少的后缀翻转次数
  22. 贪心题目:不含 AAA 或 BBB 的字符串
  23. 贪心题目:具有给定数值的最小字符串
  24. 贪心题目:十-二进制数的最少数目
  25. 贪心题目:坏了的计算器
  26. 贪心题目:得到目标值的最少行动次数
  27. 贪心题目:使绳子变成彩色的最短时间
  28. 贪心题目:所有排列中的最大和
  29. 贪心题目:翻转矩阵后的得分
  30. 贪心题目:字符频次唯一的最小删除次数
  31. 贪心题目:构造 K 个回文字符串
  32. 贪心题目:单调递增的数字
  33. 贪心题目:行相等的最少多米诺旋转
  34. 贪心题目:删除子字符串的最大得分
  35. 贪心题目:Dota2 参议院
  36. 贪心题目:救生艇
  37. 贪心题目:受标签影响的最大值
  38. 贪心题目:交换一次的先前排列
  39. 贪心题目:最多能完成排序的块
  40. 贪心题目:安排工作以达到最大收益
  41. 贪心题目:需要教语言的最少人数
  42. 贪心题目:给定行和列的和求可行矩阵
  43. 贪心题目:加油站
  44. 贪心题目:分发糖果
  45. 贪心题目:最大数
  46. 贪心题目:和为 K 的最少斐波那契数字数目
  47. 贪心题目:得到目标数组的最少函数调用次数
  48. 贪心题目:和为目标值且不重叠的非空子数组的最大数目
  49. 贪心题目:用最少数量的箭引爆气球
  50. 贪心题目:任务调度器
  51. 贪心题目:可以到达的最远建筑
  52. 贪心题目:吃苹果的最大数目
  53. 贪心题目:重构 2 行二进制矩阵
  54. 贪心题目:最长快乐字符串
  55. 贪心题目:无重叠区间
  56. 贪心题目:形成目标数组的子数组最少增加次数
  57. 贪心题目:青蛙过河 II
  58. 贪心题目:分割数组为连续子序列
  59. 贪心题目:排布二进制网格的最少交换次数
  60. 贪心题目:IPO
  61. 贪心题目:最小区间
  62. 贪心题目:最多可以参加的会议数目
  63. 贪心题目:最大的团队表现值
  64. 贪心题目:距离相等的条形码
  65. 贪心题目:重构字符串
  66. 贪心题目:避免洪水泛滥
  67. 贪心题目:最多能完成排序的块 II
  68. 贪心题目:修改后的最大二进制字符串
  69. 贪心题目:按要求补齐数组
  70. 贪心题目:超级洗衣机
  71. 贪心题目:设置交集大小至少为 2
  72. 贪心题目:雇佣 K 名工人的最低成本
  73. 贪心题目:完成所有任务的最少初始能量
  74. 贪心题目:完成所有交易的初始最少钱数
  75. 贪心题目:翻转子数组得到最大的数组值
  76. 贪心题目:让数组不相等的最小总代价
  77. 贪心题目:强密码检验器
相关推荐
shehuiyuelaiyuehao5 小时前
算法50,分治归并,数组中的逆序对
java·算法
阳明山水6 小时前
校准分位数驱动智能库存决策
人工智能·深度学习·算法·机器学习·架构
雨落在了我的手上6 小时前
Java数据结构(十四):Map和Set
数据结构
码行山野赴时序归途6 小时前
链表家族收官篇:循环链表
c语言·开发语言·数据结构·链表
别动我齐刘海7 小时前
ROS2 Jazzy + C++ 实战路线——进阶学习3
c++·人工智能·vscode·python·算法·机器学习·机器人
zhangfeng11337 小时前
《从“人工适配“到“智能生成“:KernelSwift 跨国产芯片算子迁移全栈方案解读》 —— 强调范式跃迁和跨硬件属性,适合偏架构分析的写法
人工智能·算法·华为·ai编程·npu
0+1117 小时前
算法 --滑动窗口
c++·算法·leetcode
reikocao8 小时前
大场景下 Hessian 特征值放大与退化检测
算法
hetao17338378 小时前
2026-09-18 hetao1733837 的刷题记录
c++·算法
wuyk5558 小时前
21.计数排序:不用比较的“空间换时间”排序算法
python·算法·排序算法