322コインの変更
説明:
あなたは、異なる宗派やお金の総量のコイン与えられている 量を。あなたはその金額を補うために必要があるとコインの最小数を計算する関数を書きます。お金の量は、コインの任意の組み合わせによって構成されたことができない場合は、返します -1
。
例1:
入力:コイン= [1、2、5]、量= 11
出力: 3
解説: 11 = 5 + 5 + 1
例2:
入力:コイン= [2]、量= 3
出力: -1
注:
あなたは、コインの種類ごとの無限の数を持っていることを仮定してもよいです。
問題解決のアイデア:
PythonはACコードがあります。
class Solution:
def coinChange(self, coins: List[int], amount: int) -> int:
dp = [amount + 1 for _ in range(amount + 1)]
dp[0] = 0
for coin in coins:
for i in range(coin, amount + 1):
dp[i] = min(dp[i], dp[i - coin] + 1)
return -1 if dp[amount] >= amount + 1 else dp[amount]
参照:
[1]フラワー醤油LeetCode 322コインの変更-ジョブEP148を見つけるブラシの問題、住所:https://www.bilibili.com/video/av31621107?from=search&seid=12222304351393275021