leetcode:322. 零钱兑换[完全背包]
学习要点
- 完全背包组合问题
题目链接
322. 零钱兑换 - 力扣(LeetCode)
题目描述
解法:完全背包组合
class Solution {
public:int coinChange(vector<int>& coins, int amount) {// dp[j] = min(dp[j],dp[j - nums[i]] + 1)要讨论// 初始化vector<uint64_t> dp(amount+1,-1);dp[0] = 0;for(int i = 0;i<coins.size();i++){for(int j = 0;j<=amount;j++){if(j >= coins[i]){int a = dp[j]; int b = dp[j - coins[i]];int c;if(b == -1){c = -1;}else{c = b + 1;}if( a == -1){dp[j] = c;}else if( c == -1){dp[j] = a;}else{dp[j] = min(a,c);}}}}return dp[amount];}
};