Merge pull request #2419 from EmmIons/EmmIons-patch-1

Update 0518.零钱兑换II.md
This commit is contained in:
程序员Carl
2024-02-01 10:23:17 +08:00
committed by GitHub

View File

@ -225,18 +225,24 @@ class Solution {
class Solution { class Solution {
public int change(int amount, int[] coins) { public int change(int amount, int[] coins) {
int[][] dp = new int[coins.length][amount+1]; int[][] dp = new int[coins.length][amount+1];
// 只有一种硬币的情况
for (int i = 0; i <= amount; i += coins[0]) { // 初始化边界值
dp[0][i] = 1; for(int i = 0; i < coins.length; i++){
// 第一列的初始值为1
dp[i][0] = 1;
} }
for(int j = coins[0]; j <= amount; j++){
// 初始化第一行
dp[0][j] += dp[0][j-coins[0]];
}
for(int i = 1; i < coins.length; i++){ for(int i = 1; i < coins.length; i++){
for (int j = 0; j <= amount; j++) { for(int j = 1; j <= amount; j++){
// 第i种硬币使用0~k次求和 if(j < coins[i]) dp[i][j] = dp[i-1][j];
for (int k = 0; k * coins[i] <= j; k++) { else dp[i][j] = dp[i][j-coins[i]] + dp[i-1][j];
dp[i][j] += dp[i - 1][j - k * coins[i]];
}
} }
} }
return dp[coins.length-1][amount]; return dp[coins.length-1][amount];
} }
} }