动态规划求完全背包:
1.完全背包的遍历顺序:先背包后物品是排列数,先物品后背包是组合数
2.组合个数的问题递推公式dp[j] = dp[j-nums[i]],dp[j]表示装满j的背包有dp[j]种方法(没理解,但是记下来)
3.因为可以重复选择,所以从小到大遍历物品
class Solution {
public:
int change(int amount, vector<int>& coins) {
vector<int> dp(amount+1,0);
dp[0] = 1;
for(int i=0;i<coins.size();i++){
for(int j=coins[i];j<=amount;j++){
dp[j] += dp[j-coins[i]];
}
}
return dp[amount];
}
};