浠庤椽蹇冿紙灞€閮ㄦ渶浼橈級鍑哄彂璐績绠楁硶鐨勫熀鏈€濇兂濡備笅锛?.灏嗗緟瑙e喅鐨勯棶棰樺垎瑙f垚鑻ュ共涓瓙闂锛屾眰瑙e瓙闂-闂姹傚緱瀛愰棶棰樼殑灞€閮ㄦ渶浼樿В2.鍚堝苟瀛愰棶棰樼殑灞€閮ㄦ渶浼樿В锛屽緱鍒板熀浜庡眬閮ㄦ渶浼樿В鐨勭粨鏋溿€傛墍璋撹椽蹇冿紝灏辨槸鍏虫敞褰撳墠锛堝眬閮級鏈€浼樼粨鏋滐紝鑰屼笉鏄粠鍏ㄥ眬锛堝叏灞€锛夌殑瑙掑害鍘昏€冭檻銆備袱绉嶆€濊矾鍒嗗埆瀵瑰簲灞€閮ㄦ渶浼樿В鍜屾暣浣撴渶浼樿В銆傚彲瑙佽椽蹇冨眬閮ㄦ渶浼樼Н鍒嗙殑缁撴灉寰€寰€涓嶆槸鍏ㄥ眬鏈€浼樿В锛佷緥濡傦細322.闆堕挶鍏戞崲闂锛氱粰浣犱竴涓暣鏁版暟缁刢oins锛屼唬琛ㄤ笉鍚岄潰棰濈殑纭竵锛涘拰涓€涓暣鏁癮mount锛屼唬琛ㄦ€婚噾棰濄€傝绠楀苟杩斿洖鏋勬垚鎬婚噺鎵€闇€鐨勬渶灏戠‖甯佹暟銆傚鏋滄病鏈夌‖甯佺粍鍚堟瀯鎴愭€绘暟锛屽垯杩斿洖-1銆傛偍鍙互璁や负姣忎釜纭竵鐨勬暟閲忔槸鏃犻檺鐨勩€傛寜鐓ц椽蹇冪殑鎯虫硶锛岄€氳繃浠庡ぇ鍒板皬鏋氫妇鎵€鏈夌殑纭竵闈㈤锛屾垜浠簲璇ヤ紭鍏堜娇鐢ㄥ敖鍙兘澶氱殑闈㈤澶х殑纭竵锛岃繖鏍蜂娇鐢ㄧ殑纭竵鏁伴噺灏变細瓒婂皯瓒婂ソ锛佷唬鐮佸涓?/馃帹鏂规硶涓€锛氳椽蹇冪畻娉?/馃摑鎬濊矾锛氳椽蹇冨緱鍒板眬閮ㄦ渶浼橈紝浣嗕笉涓€瀹氭槸鍏ㄥ眬鏈€浼橈紝鎵€浠ユ湁鐢ㄤ緥浣嗘槸/***@param{number[]}coins*@param{number}amount*@return{number}*/varcoinChange=function(coins,amount){letrest=amount;璁╄鏁?0锛沜oins.sort((a,b)=>b-a);//浠庡ぇ鍒板皬閬嶅巻闈㈤for(letcoinofcoins){//璁$畻褰撳墠闈㈤鍙互浣跨敤澶氬皯letcurrCount=Math.floor(rest/coin);//绱褰撳墠闈㈤浣跨敤count+=currCount;//浣跨敤褰撳墠闈㈤鏇存柊鍓╀綑闈㈠€煎悗rest-=coin*currCount;濡傛灉锛堜紤鎭?==0锛墈杩斿洖璁℃暟锛泒}杩斿洖-1;};璐績骞朵笉閫傚悎鎵€鏈夌殑闂锛堟湁浜涚敤渚嬫病鏈夐€氳繃锛夛紝姝f槸鍥犱负鏈夋椂鍊欏お璐績浜嗭紒渚嬪锛氫粠coins[0]=5锛宑oins[1]=3锛宬=11鐨勬儏鍐典腑姹傛渶灏戠殑纭竵鏁伴噺鏍规嵁鈥滆椽蹇冩€濇兂鈥濓紝鍏堥€夋嫨闈㈠€兼渶澶х殑纭竵锛屽嵆锛?涓‖甯侊紝鏀惧叆閽卞寘銆傞偅涔堬紝杩樻湁6涓厓绱犻渶瑕佹眰瑙o紙鍗?1-5=6锛夈€傝繖鏃跺€欏啀鈥滆椽蹇冣€濓紝鎶曞叆涓€鏋氶潰鍊?鍏冪殑纭竵銆傝繖鏃跺€欏彧鍓╀笅1鍧楅挶浜嗭紝濡傛灉浣犳姇鍏?锛屽氨涓嶈兘鍙噾11鍧楅挶銆備絾瀹為檯涓婅繖涓棶棰樻槸鏈夎В鐨勶紙5+3+3=11锛夈€傝繖鏄繃搴﹁椽濠鑷寸殑闂锛屽彲浠ラ€氳繃鍥炴函鏉ヨВ鍐筹紝灏卞儚锛氱數姊秴杞斤紝鑳栧瓙涓婃潵鐦﹀瓙涓婃潵//馃帹鏂规硶浜岋細鍥炴函+閫掑綊//馃摑鎬濊矾锛氫娇鐢╟asefailed/***@param{number[]}coins*@param{number}amount*@return{number}*/varcoinChange=function(coins,amount){//缁勫悎纭竵鐨勬暟閲弆etres=Infinity;coins.sort((a,b)=>b-a);if(coins.length===0){杩斿洖-1;}/***浠庡綋鍓嶇粍鍚堜腑鎵惧埌鏈€灏戠殑纭竵鏁?@param{*}coins*@param{*}total*@param{*}index*@returns*/constgetMinCoinCountOfValue=(coins,total,index)=>{if(index===coins.length){returnInfinity;}璁﹎inResult=Infinity;璁ヽurrValue=coins[index];璁﹎axCount=Math.floor(total/currValue);for(letcount=maxCount;count>=0;count--){璁﹔est=total-count*currValue;if(rest===0){minResult=Math.min(minResult,count);}璁﹔estCount=getMinCoinCountOfValue(coins,rest,index+1);if(restCount===Infinity){if(count===0){涓柇锛泒缁х画;}minResult=Math.min(minResult,count+restCount);}杩斿洖鏈€灏忕粨鏋滐紱};/***鎵惧埌鎵€鏈夋弧瓒虫潯浠剁殑缁勫悎*@param{*}coins*@param{*}amount*@param{*}index*/constgetMinCoinCount=(coins,amount,index)=>{//condition鐢ㄤ簬閫掑綊缁堟if(index===coins.length){//getMinCoinCountOfValue()鎵惧埌閲嶆柊鎺掑簭纭竵鐨勬渶灏忕‖甯佹暟閲弐es=Math.min(res,getMinCoinCountOfValue(coins,amount,0));}for(leti=index;i
