From 1103b246b6c2b3fd0c1eb924b5113c02e847cc90 Mon Sep 17 00:00:00 2001 From: Adithya Vinayak Date: Sat, 14 Feb 2026 23:37:17 -0500 Subject: [PATCH] leetcode working solution --- problem1.py | 16 ++++++++++++++++ problem2.py | 14 ++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 problem1.py create mode 100644 problem2.py diff --git a/problem1.py b/problem1.py new file mode 100644 index 00000000..c14db3fe --- /dev/null +++ b/problem1.py @@ -0,0 +1,16 @@ +## Problem1 (https://leetcode.com/problems/coin-change/) + +class Solution: + def coinChange(self, coins: List[int], amount: int) -> int: + m = len(coins) + n = amount + my_arr = [[0]*(n+1) for _ in range(m+1)] + for i in range(1,n+1): + my_arr[0][i]=99999 + for i in range(1,m+1): + for j in range(n+1): + if j < coins[i-1]: + my_arr[i][j] = my_arr[i-1][j] + else: + my_arr[i][j] = min(my_arr[i-1][j],1+my_arr[i][j-coins[i-1]]) + return my_arr[m][n] if my_arr[m][n] != 99999 else -1 \ No newline at end of file diff --git a/problem2.py b/problem2.py new file mode 100644 index 00000000..a18d4fd4 --- /dev/null +++ b/problem2.py @@ -0,0 +1,14 @@ +## Problem2 (https://leetcode.com/problems/house-robber/) + +class Solution: + + def rob(self, nums: List[int]) -> int: + n= len(nums) + if n == 1: + return nums[0] + final_arr = [0]*n + final_arr[0] = nums[0] + final_arr[1] = max(nums[0],nums[1]) + for i in range(2,n): + final_arr[i] = max((final_arr[i-1]),(nums[i]+final_arr[i-2])) + return final_arr[-1] \ No newline at end of file