###给定不同面额的硬币和一个总金额。写出函数来计算可以凑成总金额的硬币组合数。假设每一种面额的硬币有无限个。
01背包问题,可以从最经典的版本改写得到答案。
先按照每个硬币只能取一次的情况编写代码。
这里dp代表方案数,j代表总价值,i代表第i种硬币(题目给的数组从0开始的)。 每次从后往前更新方案数。
class Solution {
public int change(int amount, int[] coins) {
int[] dp = new int[amount+1];
dp[0] =