diff --git a/0322-coin-change/0322-coin-change.py b/0322-coin-change/0322-coin-change.py new file mode 100644 index 0000000..fd9f544 --- /dev/null +++ b/0322-coin-change/0322-coin-change.py @@ -0,0 +1,24 @@ +class Solution: + def coinChange(self, coins: List[int], amount: int) -> int: + """ + Complexities: + Time: O(mn) + Space: O(m) + + where n = len(coins), m = amount + """ + + dp = [-1] * (amount + 1) + + dp[0] = 0 + for i in range(amount + 1): + for coinValue in coins: + if dp[i] == -1 or i + coinValue > amount: + continue + elif dp[i + coinValue] == -1: + dp[i + coinValue] = dp[i] + 1 + else: + dp[i + coinValue] = min(dp[i + coinValue], dp[i] + 1) + + print(dp) + return dp[amount]