怎么增加网站的反链,做执法设备有哪些网站,个人主页是什么,武昌做网站公司动态规划
思路#xff1a; 假设 dp[i] 表示金额 i 的零钱兑换最小数量#xff1b;它可以由 dp[i - C(j)] 1#xff0c;即由币值C(j) 与 dp[i - C(j)] 组成#xff0c;要使得数量最少#xff0c;则 dp[i - C(j)] 最小#xff1b;边界条件 dp[0] 0#xff1b;自下而上分…动态规划
思路 假设 dp[i] 表示金额 i 的零钱兑换最小数量它可以由 dp[i - C(j)] 1即由币值C(j) 与 dp[i - C(j)] 组成要使得数量最少则 dp[i - C(j)] 最小边界条件 dp[0] 0自下而上分别计算出其需要的数量计算某一金额的时候遍历用币值与其剩余金额数量 1取最小值记录
class Solution {
public:int coinChange(vectorint coins, int amount) {int mark amount 1;std::vectorint dp(amount 1, mark);dp[0] 0;for (int i 1; i amount; i) {for (int j 0; j (int)coins.size(); j) {if (coins[j] i) {dp[i] std::min(dp[i], dp[i - coins[j]] 1);}}}return dp[amount] amount ? -1 : dp[amount];}
};