# 背包问题求方案数
有 1 分,2 分,5 分,10 分四种硬币,每种硬币数量无限,给定 n 分钱(n <= 100000),有多少中组合可以组成 n 分钱?
输入例子1:
13
输出例子1:
16
1
2
3
4
5
2
3
4
5
算法思想:将状态由最大价值改为方案数
# 518. 零钱兑换 II (opens new window)
求兑换的方案数
class Solution {
public int change(int V, int[] c) {
int dp[] = new int[V+1];
dp[0] = 1;
for (int x : c){
for (int v = x; v <=V; v++ ){
dp[v] += dp[v-x];
}
}
return dp[V];
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13