1.题目

【LeetCode】322. 零钱兑换_简单dp

2. 思想

简单dp题啦。
每种硬币的数量是无限的,所以需要将其放到二重循环内部。

3. 代码

class Solution:
def coinChange(self, coins: List[int], amount: int) -> int:
# dp[i] 表示拼到i最小硬币数目
dp = [999999] * (amount+1)
dp[0] = 0
for j in range(1,amount+1):
for i in coins:
if j >= i: # 如果当前j 大于i
dp[j] = min(dp[j],dp[j-i]+1)
print(dp)
return dp[amount] if dp[amount]!=999999 else -1