Time: 810 ms (40.98%), Space: 18.7 MB (34.3%) - LeetHub

This commit is contained in:
Deven
2025-11-30 20:48:35 -05:00
parent 79b324dd16
commit 29c783e08b
+24
View File
@@ -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]