最少硬币找零问题
例如,有以下面额(硬币):1,5,10,5。 如果要找36的零钱,我们可以用1个25的硬币、1个10的硬币和1个1的硬币。 如何将这个解答转化成算法?
今天我们只要采用两种方法来解决这个问题
-
动态规划法
是一种将复杂问题分解成更小的子问题来解决的优化技术,主要采用递归来解决。
-
贪心算法
遵循一种近似解决问题的技术,期盼通过每个阶段的局部最优选择(当前最好的解),从而达到全局的最优(全局最优解)。它不像动态规划算法那样计算更大的格局。
接下来我们就来看看具体的代码实现吧
动态规划
function MinCoinChange(coins) {
var coins = coins;
var cache = {
};
this.makeChange = function (amount) {
var me = this;
if (!amount) {
return [];
}
if (cache[amoun