1.题目

【LeetCode】518.零钱兑换II_动态规划

2. 分析

零钱可以无尽的使用

3. 代码

class Solution:
def change(self, amount: int, coins: List[int]) -> int:
# 背包问题
dp = [0] * (amount+1)
dp[0] = 1 # 初始态

for j in range(len(coins)): # 先放硬币
for i in range(1,amount+1): # 再判断当前硬币下能有多少
if i >= coins[j]:
# 这里不是 dp[i] += (dp[i-coins[j]] + 1)
# 因为是从dp[i-coins[j]] 继承过来的
dp[i] += dp[i-coins[j]]
print(dp)
return dp[-1]