贪心算法1-贪心概念

贪心算法知识点总结

一、核心定义

  • 贪心策略 :一种问题解决思路,核心逻辑是通过每一步的局部最优选择 ,期望最终得到全局最优解
  • 通俗理解:"贪婪 + 鼠目寸光",仅关注当前步骤的最优选择,不考虑后续影响。
  • 执行步骤:
    1. 将问题拆解为若干独立的子步骤;
    2. 每一步都选择当前"看起来最优"的方案;
    3. 希望通过局部最优的累积,得到全局最优解。

二、算法特点

1. 贪心策略的提出

  • 无统一标准和固定模板;
  • 不同题目往往需要设计不同的贪心策略。

2. 贪心策略的正确性

  • 贪心策略不保证一定正确,错误的贪心策略会导致全局非最优;
  • 正确的贪心策略需要严格数学证明,常用证明方法包括反证法、数学归纳法等。

三、学习方向

1. 初期学习

  • 重点在于积累和吸收各类贪心策略,将策略转化为解题经验;
  • 遇到不会的贪心题目是正常现象,需放平心态。

2. 进阶提升

  • 核心目标是掌握贪心策略的证明方法 ,完整解题流程包括:
    1. 题目解析;
    2. 讲解贪心算法原理;
    3. 编写代码实现;
    4. 证明贪心策略的正确性。

四、典型例题与策略

1. 找零问题

  • 问题 :用最少张数的纸币(面额如 [20,10,5,1])凑出目标金额(如找零46元)。
  • 贪心策略:每次选择当前最大面额的纸币,直到凑满金额(如46元选2张20元、1张5元、1张1元,共4张)。
  • 证明思路:通过不等式推导或反证法,证明贪心选择的面额数量是最优的。

2. 最小路径和

  • 问题:网格中从左上角到右下角,每次只能向右/向下移动,求路径数字和最小的路径。
  • 贪心策略:每一步选择当前可移动方向中数字更小的路径。

3. 部分背包问题

  • 问题:背包容量固定,物品有体积和价值(可分割),选择物品使总价值最大。
  • 贪心策略:按"价值/体积"比值从高到低选择,优先选比值高的物品。
相关推荐
lhc200906259 小时前
【作业】 贪心算法
算法·贪心算法
qyzm14 小时前
AtCoder Beginner Contest 449
数据结构·python·算法·贪心算法
Trouvaille ~15 小时前
【贪心算法】专题(五):逆向思维与区间重叠的极致拉扯
c++·算法·leetcode·青少年编程·面试·贪心算法·蓝桥杯
云泽80816 小时前
蓝桥杯算法精讲:贪心算法之区间问题深度剖析
算法·贪心算法·蓝桥杯
Trouvaille ~16 小时前
【贪心算法】专题(六):降维打击与错位重构的终极收官
c++·算法·leetcode·面试·贪心算法·重构·蓝桥杯
一叶落43817 小时前
LeetCode 135. 分发糖果(C语言)| 贪心算法 + 双向遍历详解
c语言·数据结构·算法·leetcode·贪心算法·哈希算法
云泽8081 天前
蓝桥杯算法精讲:贪心算法之推公式例题深度剖析
算法·贪心算法·蓝桥杯
荣光属于凯撒2 天前
P15755 [JAG 2025 Summer Camp #1] JAG Box
c++·算法·贪心算法
qyzm2 天前
天梯赛练习(3月13日)
开发语言·数据结构·python·算法·贪心算法
Trouvaille ~3 天前
【贪心算法】专题(三):排序、博弈与区间的贪婪法则
c++·算法·leetcode·青少年编程·面试·贪心算法·蓝桥杯