動態規劃_組成銀幣的最多可能數
比如 vector coins int amount = 8;顯然有三種(
)那麼問題來了怎麼求
老四樣://確定狀態 dp[i] 代表組成硬幣i的最大可能數
//轉移狀態dp[i]
/*for (int coin: coins)}*/
//初始值
//dp[0]=1 這個初始化非常好 保證了dp[coins[i] ]=1;
//返回值 dp[amount]
#include
#include
using
namespace std;
class
solution
currentamountchange[i]
= currentamountchange[i]
+ currentamountchange[leftamount];}
}return currentamountchange[amount];}
};intmain()
; solution s;
cout << s.
change
(amount, coins)
;return0;
}
四個要點抓住了,思路也就出來了。 動態規劃 面試題 組成銀幣的最小數目
老四樣 例如 組成12 最小數目是 3 5 5 2 12 複雜的寫法 由於初始值我們定義太不具有靈活性了 可以直接看靈活性的 1.確定狀態 dp i 代表組成 amount i的最少銀幣數 2.狀態轉移方程dp i dp i min dp i 1 dp i 2 dp i 5 1 注意了由於可能存在i...
面試題,硬幣 動態規劃
題目描述 給定數量不限的硬幣,幣值為25分 10分 5分和1分,編寫 計算n分有幾種表示法。結果可能會很大,你需要將結果模上1000000007 示例1 輸入 n 5 輸出 2 解釋 有兩種方式可以湊成總金額 5 55 1 1 1 1 1 示例2 輸入 n 10 輸出 4 解釋 有四種方式可以湊成總...
LeetCode動態規劃 面試題17 16按摩師
乙個有名的按摩師會收到源源不斷的預約請求,每個預約都可以選擇接或不接。在每次預約服務之間要有休息時間,因此她不能接受相鄰的預約。給定乙個預約請求序列,替按摩師找到最優的預約集合 總預約時間最長 返回總的分鐘數。注意 本題相對原題稍作改動 示例 1 輸入 1,2,3,1 輸出 4 解釋 選擇 1 號預...