找硬幣

題目描述

如果我們有面值1元访诱,3元和5元的硬幣若干图张,如何用最少的硬幣湊夠11元锋拖?

  1. 如何用最少的硬幣湊夠i元?

當 i = 0 時祸轮,顯然需要0個硬幣兽埃。

這里我們使用 d(i) = j 來描述,于是我們有 d(0) = 0适袜。
當 i = 1 時柄错,只有1元硬幣可用,當我使用1個1元硬幣苦酱,在去求解如果 i = 0這個問題售貌,前面已經(jīng)球得這個問題的解為0,所以i=1時這個問題求解結束疫萤,得到取1個1元硬幣這個解趁矾,所以d(1) = 1。
當 i = 2 時给僵, 可以使用2個1元硬幣,這個過程首先,取1個1元硬幣帝际,然后去求解i=1這個問題蔓同,上面已經(jīng)有了這個問題的解答,所以這個問題求解結束蹲诀,這種情況需要2個1元硬幣斑粱。還有一種情況去一個2元硬幣,然后去求解i = 0這個問題脯爪,上面也已經(jīng)有了解答则北,所以這種情況下,需要1個2元硬幣痕慢。因為問題是要求硬幣數(shù)最少尚揣,所以去上面兩種情況中,結果較小的1個作為結果掖举,即min{1+d(1),1+d(0)},所以結果為d(2) = 1快骗。
當 i = 3 時,我們用按照上述方式求解塔次,過程的公式化為1) d(3) = min{1+d(3-1),1+d(3-3)} = min{1+d(2),1+d(1),1+d(0)} = min{2,2,1} = 1
由以上的的過程我們可以得到兩個非常重要的概念方篮,狀態(tài)和狀態(tài)轉(zhuǎn)移方程。上文中d(i)表示湊夠i元需要的最少硬幣數(shù)励负,我們將它定義為狀態(tài)藕溅。我們根據(jù)子問題來找到狀態(tài)的描述。最終我們求解的問題继榆,可以用這個狀態(tài)來表示巾表,即d(11)。那什么是狀態(tài)轉(zhuǎn)移方程呢裕照?,既然我們用d(i)表示狀態(tài)攒发,那么狀態(tài)轉(zhuǎn)移方程自然包含d(i),上文中包含d(i)的方程是d(3) = min{1+d(3-1),1+d(3-3)}晋南,沒錯惠猿,他就是狀態(tài)轉(zhuǎn)移方程,描述狀態(tài)之間是如何轉(zhuǎn)移的负间。這里我們對它一般化d(i) = min{d(i-vj)+1} 其中i-vj >=0偶妖,vj表示第j個硬幣的面值。 j = 1,2,3 vj = 1 , 3, 5政溃。
下面是解題的代碼

 vector<int> coins{1,3,5};
 int coinChange(vector<int>& coins, int amount) {
      vector<int> dp;
      for (int i=0;i<=amount;i++) {
               dp.push_back(9999);
      }
     dp[0] =0;
     for (int i = 1;i<=amount;i++)
          for (int j = 0;j < coins.size();j++)
                if ((i-coins[j] >= 0)&&(dp[i]>dp[i-coins[j]]+1)) 
                         dp[i] = dp[i-coins[j]]+1;
                

     if (dp[amount] == 9999)
         return -1;
     else 
         return dp[amount];
    }
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末趾访,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子董虱,更是在濱河造成了極大的恐慌扼鞋,老刑警劉巖申鱼,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異云头,居然都是意外死亡捐友,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進店門溃槐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來匣砖,“玉大人,你說我怎么就攤上這事昏滴『秭辏” “怎么了?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵谣殊,是天一觀的道長拂共。 經(jīng)常有香客問我,道長蟹倾,這世上最難降的妖魔是什么匣缘? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮鲜棠,結果婚禮上肌厨,老公的妹妹穿的比我還像新娘。我一直安慰自己豁陆,他們只是感情好柑爸,可當我...
    茶點故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著盒音,像睡著了一般表鳍。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上祥诽,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天譬圣,我揣著相機與錄音,去河邊找鬼雄坪。 笑死厘熟,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的维哈。 我是一名探鬼主播绳姨,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼阔挠!你這毒婦竟也來了飘庄?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤购撼,失蹤者是張志新(化名)和其女友劉穎跪削,沒想到半個月后谴仙,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡碾盐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年狞甚,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片廓旬。...
    茶點故事閱讀 39,977評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖谐腰,靈堂內(nèi)的尸體忽然破棺而出孕豹,到底是詐尸還是另有隱情,我是刑警寧澤十气,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布励背,位于F島的核電站,受9級特大地震影響砸西,放射性物質(zhì)發(fā)生泄漏叶眉。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一芹枷、第九天 我趴在偏房一處隱蔽的房頂上張望衅疙。 院中可真熱鬧,春花似錦鸳慈、人聲如沸饱溢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽绩郎。三九已至,卻和暖如春翁逞,著一層夾襖步出監(jiān)牢的瞬間肋杖,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工挖函, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留状植,地道東北人。 一個月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓挪圾,卻偏偏與公主長得像浅萧,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子哲思,可洞房花燭夜當晚...
    茶點故事閱讀 44,927評論 2 355

推薦閱讀更多精彩內(nèi)容