这道题按照没接触过算法的普通人的思路是手动把每种思路都列举出来,直接,但却容易遗漏,作为优秀的准程序员当然要用算法思想来解决拉

public int change(int amount, int[] coins) { int[] dp = new int[amount+1]; //得到金额为0有一种方案 dp[0] = 1; for(int coin : coins) { for(int i = 1;i <= amount;i++) { //表示dp[i]可以由dp[i-coin]得到 if(i - coin >= 0) dp[i] += dp[i - coin]; } } return dp[amount]; }