1、题目描述
输入表示币值的数组和amount,返回有多少种取款的方式。
2、思路
动归。这里要格外注意两层循环的嵌套顺序。
3、代码
int change(int amount, vector<int>& coins) {
int m = coins.size();
int dp[amount+1];
for(int i=0;i<=amount;i++)
dp[i]=0;
dp[0]=1;
for(int i=0;i<m;i++){
for(int j=1;j<=amount;j++){
if(j>=coins[i])
dp[j]+=dp[j-coins[i]];
}
}
return dp[amount];
}