diff --git a/Coin Change.py b/Coin Change.py new file mode 100644 index 00000000..f415e77b --- /dev/null +++ b/Coin Change.py @@ -0,0 +1,20 @@ +class Solution: + def coinChange(self, coins: List[int], amount: int) -> int: + if coins == None or len(coins) ==0: + return 0 + n= len(coins) + + dp=[[0]*(amount+1) for _ in range (n+1)] + + for i in range (1, amount+1): + dp[0][i]=amount+1 + + for i in range (1, n+1): + for j in range (1, amount+1): + if j< coins[i-1]: + dp[i][j]= dp[i-1][j] + else: + dp[i][j]= min( dp[i-1][j], 1+dp[i][j-coins[i-1]]) + if dp[n][amount]> amount: + return -1 + return dp[n][amount] \ No newline at end of file diff --git a/House Robber.py b/House Robber.py new file mode 100644 index 00000000..4d6818ae --- /dev/null +++ b/House Robber.py @@ -0,0 +1,16 @@ +# Time complexity =o(n) and Space Complexity = o(n) +class Solution: + def rob(self, nums: List[int]) -> int: + if nums ==0 or len(nums)==0: + return + n= len(nums) + dp =[[0] * (2 )for j in range (n)] + dp[0][0]=0 + dp[0][1]=nums[0] + + for i in range(1, n): + dp[i][0]=max(dp[i-1][0], dp[i-1][1]) + dp[i][1]=nums[i]+dp[i-1][0] + + return max(dp[n-1][0], dp[n-1][1]) + \ No newline at end of file