From 10784afa4e6bd63cc1b4864a46caa68d260ec381 Mon Sep 17 00:00:00 2001 From: Vaishnavi Gawale Date: Mon, 5 Jan 2026 21:39:53 -0500 Subject: [PATCH] Done Dp-1 --- coin-change.py | 26 ++++++++++++++++++++++++++ house-robber.py | 19 +++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 coin-change.py create mode 100644 house-robber.py diff --git a/coin-change.py b/coin-change.py new file mode 100644 index 00000000..a67b9f30 --- /dev/null +++ b/coin-change.py @@ -0,0 +1,26 @@ +''' Time Complexity : O(m * n) + Space Complexity : O(m * n) + Did this code successfully run on Leetcode : Yes + Any problem you faced while coding this : No + + Your code here along with comments explaining your approach + + Approach : calculating min no of coins required at each amount +''' +class Solution: + def coinChange(self, coins: List[int], amount: int) -> int: + if amount == 0: + return 0 + dp = [[amount+1 for _ in range(amount+1)] for _ in range(len(coins)+1)] + for i in range(len(coins)+1): + dp[i][0] = 0 + for i in range(1,len(coins)+1): + for j in range(1,(amount+1)): + if coins[i-1] > j: + dp[i][j] = dp[i-1][j] + else: + dp[i][j] = min(dp[i-1][j], dp[i][j-coins[i-1]] + 1) + if dp[i][j] == (amount+1): + return -1 + else: + return dp[i][j] \ No newline at end of file diff --git a/house-robber.py b/house-robber.py new file mode 100644 index 00000000..6d7e0533 --- /dev/null +++ b/house-robber.py @@ -0,0 +1,19 @@ +''' Time Complexity : O(n) + Space Complexity : O(n) + Did this code successfully run on Leetcode : Yes + Any problem you faced while coding this : No + + Your code here along with comments explaining your approach +''' + +class Solution: + def rob(self, nums: List[int]) -> int: + n = len(nums) + if n == 1: + return nums[0] + if n == 2: + return max(nums) + dp = [0] * (n) + for i in range(n): + dp[i] = max(dp[i-1],dp[i-2]+nums[i]) + return dp[n-1]