Coin Change II

amountInteger
5
coinsArray
[1, 2, 5]
1def change(amount, coins):
2    n = len(coins)
3    dp = [[0] * (amount + 1) for _ in range(n + 1)]
4
5    # Base case: one way to make 0
6    for i in range(n + 1):
7        dp[i][0] = 1
8
9    for i in range(1, n + 1):
10        coin = coins[i - 1]
11        for j in range(1, amount + 1):
12            # Ways without using current coin
13            dp[i][j] = dp[i - 1][j]
14
15            # Add ways using current coin
16            if j >= coin:
17                dp[i][j] += dp[i][j - coin]
18
19    return dp[n][amount]
0 / 43
125Coins012345Amount →Coins125