亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

js貪心算法 錢幣找零問題代碼實例

2019-11-19 10:49:53
字體:
來源:轉載
供稿:網友

給定一組硬幣的面額,以及要找零的錢數,計算出符合找零錢數的最少硬幣數量。

例如,美國硬幣面額有1、5、10、25這四種面額,如果要找36美分的零錢,則得出的最少硬幣數應該是1個25美分、1個10美分和1個10美分共三個硬幣。這個算法要解決的就是諸如此類的問題。我們來看看如何用動態規劃的方式來解決。

對于每一種面額,我們都分別計算所需要的硬幣數量。具體算法如下:

  1. 如果全部用1美分的硬幣,一共需要36個硬幣
  2. 如果用5美分的硬幣,則需要7個5美分的硬幣 + 1個1美分的硬幣 = 8個硬幣
  3. 如果用10美分的硬幣,則需要3個10美分的硬幣 + 1個5美分的硬幣 + 1個1美分的硬幣 = 5個硬幣
  4. 如果用25美分的硬幣,則需要1個25美分的硬幣 + 1個10美分的硬幣 + 1個1美分的硬幣 = 3個硬幣

示意圖

方案4的硬幣總數最少,因此為最優方案。

具體的代碼實現如下:

function minCoinChange(coins, amount) {  let result = null;  if (!amount) return result;  const makeChange = (index, value, min) => {    let coin = coins[index];    let newAmount = Math.floor(value / coin);    if (newAmount) min[coin] = newAmount;    if (value % coin !== 0) {      makeChange(--index, value - coin * newAmount, min);    }  };  const arr = [];  for (let i = 0; i < coins.length; i++) {    const cache = {};    makeChange(i, amount, cache);    arr.push(cache);  }  console.log(arr);  let newMin = 0;  arr.forEach(item => {    let min = 0;    for (let v in item) min += item[v];    if (!newMin || min < newMin) {      newMin = min;      result = item;    }  });  return result;}

函數minCoinChange()接收一組硬幣的面額,以及要找零的錢數。我們將上面例子中的值傳入:

const result = minCoinChange2([1, 5, 10, 25], 36);console.log(result);

得到如下結果:

[ { '1': 36 }, { '1': 1, '5': 7 }, { '1': 1, '5': 1, '10': 3 }, { '1': 1, '10': 1, '25': 1 }]{ '1': 1, '10': 1, '25': 1 }

上面的數組是我們在代碼中打印出來的arr的值,用來展示四種不同面額的硬幣作為找零硬幣時,實際所需要的硬幣種類和數量。最終,我們會計算arr數組中硬幣總數最少的那個方案,作為minCoinChange()函數的輸出。

當然在實際應用中,我們可以把硬幣抽象成任何你需要的數字,這個算法能給出你滿足結果的最小組合。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产97在线观看| 九色精品免费永久在线| 欧美制服第一页| 国产精品久久久久久久久久东京| 国产精品日日摸夜夜添夜夜av| 国产日本欧美一区| 亚洲视频自拍偷拍| 成人激情免费在线| 91黑丝在线观看| 亚洲女人被黑人巨大进入| 97香蕉久久超级碰碰高清版| 伊人一区二区三区久久精品| 久久中文久久字幕| 亚洲福利视频专区| 91精品啪aⅴ在线观看国产| 亚洲精品狠狠操| 精品国产91乱高清在线观看| 欧美成人自拍视频| 国产精品中文字幕久久久| 国产精品综合不卡av| 欧美激情视频网| 国产亚洲激情在线| 亚洲高清一区二| 亚洲深夜福利在线| 俺去了亚洲欧美日韩| 亚洲日本欧美中文幕| 国语自产偷拍精品视频偷| 黄色成人在线免费| 欧美午夜片在线免费观看| 欧美巨大黑人极品精男| 久热99视频在线观看| 色偷偷偷综合中文字幕;dd| 久久免费在线观看| 91精品中文在线| 精品人伦一区二区三区蜜桃网站| 亚洲免费电影一区| 最近2019年手机中文字幕| 欧美国产在线电影| 亚洲网站在线观看| 欧美精品日韩三级| 91超碰caoporn97人人| 国产v综合ⅴ日韩v欧美大片| 国产日韩欧美成人| 久久久久久亚洲精品不卡| 日韩欧美在线观看| 欧美性猛交xxxx乱大交3| 日本韩国在线不卡| 中文字幕亚洲精品| 久久久亚洲国产天美传媒修理工| 欧洲美女免费图片一区| 亚洲片国产一区一级在线观看| 欧美日韩国产中字| 欧美亚洲日本网站| 亚洲成人三级在线| 91精品久久久久久久久中文字幕| 久久久av电影| 国产精品日韩欧美| 国产欧美日韩亚洲精品| 欧美另类精品xxxx孕妇| 欧美成人激情视频免费观看| 欧美日韩国产丝袜美女| 欧美成人中文字幕| 国产欧美久久一区二区| 日韩电影免费观看在线观看| 亚洲xxx视频| 中文字幕在线看视频国产欧美在线看完整| 一区二区日韩精品| 久久久爽爽爽美女图片| 久久人人爽人人爽爽久久| 欧美高清videos高潮hd| 亚洲人高潮女人毛茸茸| 国产婷婷色综合av蜜臀av| 亚洲影院高清在线| 精品久久中文字幕久久av| 在线日韩日本国产亚洲| 国产欧美精品xxxx另类| 精品国产91久久久| 亚洲国产欧美一区| 欧洲s码亚洲m码精品一区| 欧美裸体xxxx极品少妇软件| 97热在线精品视频在线观看| 亚洲精品欧美一区二区三区| 啪一啪鲁一鲁2019在线视频| 国产精品稀缺呦系列在线| 亚洲国产美女精品久久久久∴| 日韩在线中文字| 97在线视频一区| 国产精品a久久久久久| 97色在线视频| 亚洲成人免费网站| 中文字幕在线看视频国产欧美在线看完整| 欧美激情在线观看视频| 中文字幕精品一区二区精品| 欧美日韩国产激情| 亚洲国产精品高清久久久| 日本精品中文字幕| 国产在线999| 国产精品一区av| 亚洲人在线视频| 国产欧美日韩丝袜精品一区| 亚洲精品白浆高清久久久久久| 成人欧美在线视频| 欧美有码在线观看视频| 精品国产一区二区在线| 国产精品久久国产精品99gif| 日韩欧中文字幕| 成年无码av片在线| 中文字幕国产亚洲2019| 日韩视频免费在线观看| 亚洲国产精品电影在线观看| 国产一区二区三区免费视频| 欧美精品少妇videofree| 亚洲欧美日韩精品| www.亚洲男人天堂| 日韩中文字幕视频在线观看| 欧美日韩第一页| 精品小视频在线| 日本精品在线视频| 久久精品国亚洲| 亚洲国产精品资源| 亚洲精品国产精品自产a区红杏吧| 97av在线视频免费播放| 成人在线中文字幕| www国产精品视频| 欧美成人第一页| 热门国产精品亚洲第一区在线| 亚洲第一中文字幕在线观看| 国产精品自拍偷拍| 国产精品流白浆视频| 亚洲国模精品一区| 精品福利樱桃av导航| 欧美在线视频观看| 亚洲精品久久久久久久久久久久久| 日韩欧美在线观看| 亚洲第一av网站| 亚洲一区中文字幕| 午夜免费在线观看精品视频| 性色av一区二区三区| 久久电影一区二区| 欧美激情综合色综合啪啪五月| 日韩成人在线视频网站| 欧美日韩国产精品一区| 亚洲性线免费观看视频成熟| 国产精品旅馆在线| 国产裸体写真av一区二区| 国产精品video| 久久在线观看视频| 亚洲区中文字幕| 成人国产精品久久久| 亚洲第一中文字幕| 成人性教育视频在线观看| 欧美日韩国产91| 国产日韩欧美在线| 国产一区二区三区精品久久久| 欧美专区第一页| 91久久久久久久久久| 中文字幕日本欧美| 97国产成人精品视频| 亚洲伦理中文字幕| 国产精品美女www爽爽爽视频| 久久久天堂国产精品女人| 精品亚洲一区二区三区在线播放| 精品久久久香蕉免费精品视频| 国产香蕉97碰碰久久人人|