
贪心算法一共有两类问题:
- 1、苹果数量一定,求最多能满足多少个孩子
- 2、孩子数量一定(要满足某一固定目标),求最少需要多少个苹果。(leetcode 455)
总之,贪心算法就是一个变量一定,求另一个变量最多或者最少值。
官方的说法是贪心算法一般用来解决需要 “找到要做某事的最小数量” 或 “找到在某些情况下适合的最大物品数量” 的问题,且提供的是无序的输入。
两种问题采用贪心算法的合理性:
- 1、解决方法是尽量用小苹果去满足小胃口孩子,不浪费大苹果,因为大苹果可以用于去满足胃口大的孩子,如果用大苹果去满足胃口小的孩子有可能会出现胃口大的孩子得不到满足,无法实现全局最优。
- 2、解决方法是在满足胃口范围的情况下,尽量用一个苹果去满足多个孩子,因为要求务必所有孩子都要得到满足,所以在满足第一个孩子的同时,看看最多能用第一个苹果同时还满足其他几个孩子,这样满足的孩子越多,后面会用到的苹果就会越少,就越能实现全局最优。
那么本题的解决需要考虑(1)如何合理确定第一个苹果最多能满足多少个孩子;(2)
leetcode 452 用最少数量的箭引爆气球 贪心算法
原文:https://www.cnblogs.com/sjh-dora/p/12868248.html