【贪心算法】贪心算法讲解

什么是贪心算法?

贪心的本质是选择每一阶段的局部最优解,从而达到全局最优。如有一摞面额不等的钱,规定可以拿十张,想要获得总数最大怎么拿?答案是每次都拿面额最大的钱。这样每次拿最大的都是局部最优解,最后拿走数额最大的钱就是全局最优

什么时候用贪心?

贪心算法没有固定的套路。一般情况下,我们考虑可不可以用局部最优推导出全局最优,并且想不到反例,那这时候贪心算法可能就是一个好的答案

贪心一般的解题步骤:

  1. 将问题分解成若干个小问题
  2. 选出合适的贪心策略
  3. 求解每个子问题的最优解
  4. 将局部最优解堆叠成全局最优解