diff --git a/CoinChange.java b/CoinChange.java new file mode 100644 index 00000000..b470ac53 --- /dev/null +++ b/CoinChange.java @@ -0,0 +1,26 @@ +public class CoinChange { + + public int coinChange(int[] coins, int amount) { + int col = amount; + int[] dp = new int[col+1]; + for (int i=1; i amount -> num from above + if (coins[i-1] > j){ + dp[j] = dp[j]; + } + // get min of above and i-denomnination +1 + else{ + dp[j] = Math.min(dp[j],1+ dp[j-coins[i-1]]); + } + } + } + int ans = dp[col]; + if (ans > amount) return -1; + return ans; + } + +} diff --git a/HoseRobber2.java b/HoseRobber2.java new file mode 100644 index 00000000..2dd3978d --- /dev/null +++ b/HoseRobber2.java @@ -0,0 +1,21 @@ +public class HoseRobber2 { + + public int robber(int[] nums) { + int[][] dp = new int[nums.length + 1][2]; + dp[0][1] = 0; + dp[1][0] = 0; + int max = Integer.MIN_VALUE; + + for (int row = 1; row <= nums.length; row++) { + int notTaken = Math.max(dp[row - 1][0], dp[row - 1][1]); + int taken = dp[row - 1][0] + nums[row - 1]; + max = Math.max(max, Math.max(notTaken, taken)); + + dp[row][0] = notTaken; + dp[row][1] = taken; + } + + return max; + + } +} diff --git a/HouseRobber.java b/HouseRobber.java new file mode 100644 index 00000000..ae9872ff --- /dev/null +++ b/HouseRobber.java @@ -0,0 +1,55 @@ +class HouseRobber { + //T = O(n) + + //space = O(1) + public int rob(int[] nums) { + if (nums.length ==1) return nums[0]; + int n = nums.length; + // int[] dp = new int[n]; + int prev = nums[0]; + int curr = Math.max(nums[0],nums[1]); + for (int i=2; i= nums.length) return 0; + +// //logic +// int case0 = helper(nums, idx+1); +// int case1 = nums[idx] + helper(nums,idx+2); + +// return Math.max(case0, case1); +// } +// } \ No newline at end of file