P85. 最小硬币组合

leetcode 322 lintcode 669 动态规划 讨论

温馨提示:您没有权限查看当前视频。 立即购买观看视频

描述

这个题目说的是,给你一些面值不同的硬币,每一种面值的硬币都有无限多个,现在你要用这些硬币组成一个给定的数值,那么请问,最少需要多少个硬币。另外,如果给你的面值无法组成给定数值,就返回 -1。

比如说,给你的硬币有 1 分 2 分两种面值,现在你要用它们凑 4 分钱。

我们知道用 1 分 2 分凑 4 分有 3 种组合:

4 = 1 + 1 + 1 + 1
4 = 1 + 1 + 2
4 = 2 + 2

其中使用了最少硬币的组合是 2 + 2,用了两个硬币,于是要返回的答案就是 2。

关于 AlgoCasts

AlgoCasts 旨在用心做好每一个算法讲解视频。每个视频包含两个部分:题目的剖析讲解以及编码,力求在讲解清楚到位的基础上,尽可能地保持视频精简短小,让大家可以在碎片时间里进行学习,并收获这些算法题背后的思想与乐趣。