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