贪心算法是算法设计的一种方法。期盼通过每个阶段的局部最优选择,从而达到全局的最优。但结果不一定是最优的。

场景一

零钱兑换

现有硬币1元、2元、5元,需要用最少的硬币数量凑够11元。
利用贪心算法实现,优先考虑最好的结果就是面值为5元的硬币,11 = 5 + 5 + 1,一共使用了三枚硬币。

现有硬币1元、3元、4元,需要用最少的硬币数量凑够5元。
利用贪心算法实现,优先考虑最好的结果就是面值为4元的硬币,6 = 4 + 1 + 1,一共用了三枚硬币,虽然结果是对的,但是并不是最优的,因为用两枚3元硬币才是最优。