javaScript貪心演算法-找零問題
阿新 • • 發佈:2018-12-09
貪心演算法遵循一種近似解決問題的技術,期盼通過每個階段的區域性最優選擇(當前最好的解),從而達到全域性的最優(全域性最優解)。
最少硬幣找零問題
最少硬幣找零是給出要找零的錢數,以及可以用硬幣的額度數量,找出有多少種找零方法。
如:美國面額硬幣有:1,5,10,25
我們給36美分的零錢,看能得怎樣的結果?
function MinCoinChange(coins){ var coins = coins; this.makeChange = function(amount){ var change = [], total = 0; for(var i = coins.length;i>=0;i--){ var coin = coins[i]; while(total + coin <= amount){ change.push(coin); total +=coin; } } return change; } } var MinCoinChange = new MinCoinChange([1,5,10,25]); console.log(MinCoinChange.makeChange(36));
貪心得到結果是一個可以接受的解,不一定總是得到最優的解,因為規劃上沒有考慮到大。
步驟如下圖:
參考:https://blog.csdn.net/rth362147773/article/details/78078723