零钱兑换II
给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。
请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0 。
假设每一种面额的硬币有无限个。 Last updated
给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。
请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0 。
假设每一种面额的硬币有无限个。 Last updated
class Solution:
def change(self, amount: int, coins: List[int]) -> int:
from functools import lru_cache
N = len(coins)
dp = [0] * (amount + 1)
dp[0] = 1
for i in range(N):
x = coins[i]
for j in range(x, amount + 1):
dp[j] += dp[j - x]
return dp[amount]