1. 程式人生 > >javaScript貪心演算法-找零問題

javaScript貪心演算法-找零問題

貪心演算法遵循一種近似解決問題的技術,期盼通過每個階段的區域性最優選擇(當前最好的解),從而達到全域性的最優(全域性最優解)。

最少硬幣找零問題 
最少硬幣找零是給出要找零的錢數,以及可以用硬幣的額度數量,找出有多少種找零方法。 
如:美國面額硬幣有: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