摘要:存儲了到的最優解的找零是或者或者或者的最優解個數是最優解是子解的子解是的最優解的最優解的最優解的最優解類推如果剛好找完返回每個最優解存儲起來
function MinCoinChange(coins) { var coins = coins; // cache存儲了1到37的最優解 // 37的找零 是36 或者32 或者27 或者12 的最優解個數+1 var cache = {}; this.makeChange = function(amount) { var me = this; if (!amount) { return []; } if (cache[amount]) { return cache[amount]; } // min是最優解 newMin是子解 36的子解是(35的最優解 31的最優解 26的最優解 11的最優解)---->類推 var min = [], newMin, newAmount; for (var i = 0; i < coins.length; i++) { var coin = coins[i]; newAmount = amount - coin; if (newAmount >= 0) { // 如果剛好找完 newAmount = 0 返回newMin = []; newMin = me.makeChange(newAmount); } if (newAmount >= 0 && (newMin.length < min.length - 1 || !min.length) && (newMin.length || !newAmount)) { min = [coin].concat(newMin); } } // 每個最優解存儲起來 return (cache[amount] = min); } this.cache = function() { console.log(cache); } } var a = new MinCoinChange([1, 5, 10, 25]); console.log(a.makeChange(36));
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/83424.html
摘要:之前是寫在面試記錄里的,題目有點開始多了就分割出來專門來一篇了實現一個函數,接受一個參數,輸出個遞增自然數輸出的自然數不能含有,,或為的倍數,如果含有或為的倍數,則輸出下一個自然數支持多次調用,從開始,每次自上次調用的末尾自然數繼續打印示例 之前是寫在面試記錄里的,題目有點開始多了就分割出來專門來一篇了 實現一個函數printNum,接受一個參數n,輸出n個遞增自然數· 輸出的自然...
摘要:序列文章面試之函數面試之對象面試之數組的幾個不操作面試之對比分析前言數據結構是計算機存儲組織數據的方式算法是系統描述解決問題的策略。了解基本的數據結構和算法可以提高代碼的性能和質量。 showImg(https://segmentfault.com/img/bVbqYZQ?w=3000&h=2250); 序列文章 JS面試之函數(1)JS面試之對象(2)JS面試之數組的幾個不low操作...
問題:現有現金a,并且有n種面額的零錢,問,共有多少種找零方式。問題細化:現有現金1元,并且有50分,25分,10分,5分,1分五種面額,用這5種零錢組成1元,共有多少種方式? 如果把n種零錢按照某種順序排列(如50分,25分,10分,5分,1分,不一定升序或降序,也可以亂序),那么問題可以轉化為:現金a用除第一種零錢之外其他面額的找零方式數目加上現金a-d用所有面額的找零方式數目,其中d為第一...
摘要:函數和所生成的過程來源譯者飛龍協議函數是計算過程的局部演化模式。在這一章中,我們會檢測一些用于簡單函數所生成過程的通用模型。也就是說,遞歸函數的執行過程可能需要再次調用這個函數。 3.2 函數和所生成的過程 來源:3.2 Functions and the Processes They Generate 譯者:飛龍 協議:CC BY-NC-SA 4.0 函數是計算過程的局部演化...
閱讀 2338·2021-11-24 11:16
閱讀 2022·2021-09-30 09:47
閱讀 1997·2021-09-10 10:51
閱讀 1316·2019-08-30 14:08
閱讀 3133·2019-08-30 13:47
閱讀 1522·2019-08-30 13:02
閱讀 3227·2019-08-29 12:29
閱讀 3179·2019-08-26 17:05