動態規劃 最小硬幣找零

2022-01-19 02:13:30 字數 935 閱讀 8553

用的硬幣面額d1 …dn 及其數量,找出有多少種找零方法。最少硬幣找零問題是給出要找零的錢數,

以及可用的硬幣面額d1 …dn 及其數量,找到所需的最少的硬幣個數。

// 最小硬幣找零

function mincoinchange(coins)

var cache = {}; //

this.makechange = function (amount)

return ;

}if (cache[amount])

return cache[amount];

}var min = , newmin, newamount;

for (var i = 0; i < coins.length; i++)

var coin = coins[i];

newamount = amount - coin; //

if (newamount >= 0)

console.log(newamount, 'newamount' , newmin, amount , 'amount')

}if (

newamount >= 0 && //

(newmin.length < min.length - 1 || !min.length)//

&& (newmin.length || !newamount)) // 判斷newamount是否有效,minvalue (最少硬幣數)是否是最優解,與此同時minvalue和newamount是否是合理的值

console.log('new min ' + min + ' for ' + amount);}}

console.log(amount, min, 'cache')

return (cache[amount] = min); //

};}

codepen鏈結

動態規劃 最小硬幣找零問題

這題很典型是動態規劃問題,為什麼呢?首先我們可以看一下什麼問題可以被看做動態規劃問題。因此動態規劃的精髓在於,充分利用上一次的計算結果來達成本次快速計算的目的 ok,一般我們解決動態規劃問題可分為三步走 分析問題的狀態時,不要分析整體,只分析最後乙個階段即可!因為動態規劃問題都是劃分為多個階段的,各...

動態規劃 硬幣找零

時間限制 1000 ms 記憶體限制 65535 kb 描述在現實生活中,我們經常遇到硬幣找零的問題,例如,在發工資時,財務人員就需要計算最少的找零硬幣數,以便他們能從銀行拿回最少的硬幣數,並保證能用這些硬幣發工資。我們應該注意到,人民幣的硬幣系統是 100,50,20,10,5,2,1,0.5,0...

硬幣找零問題(動態規劃)

給定指定的硬幣種類,面值為 1,3,5 在此具體化些 給定所找零的錢數 sum,給出最少的硬幣找零數,每個種類的硬幣無限使用。看到這問題,當時我想到用貪心演算法來求解,最後求解方案因為巧合對了,後來在網上看到動態規劃的題目,才知道貪心演算法得不到最優解,比如 給定 面值為 1,3,4,給定找零數為 ...