From fc00f2967a469d2d1e03b5bb2d8442d437c921f0 Mon Sep 17 00:00:00 2001 From: sudheer kethireddy Date: Mon, 15 Jun 2026 11:51:41 -0500 Subject: [PATCH] first commit --- DeleteAndEarn.java | 28 ++++++++++++++++++++++++++++ HouseRobber.java | 23 +++++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 DeleteAndEarn.java create mode 100644 HouseRobber.java diff --git a/DeleteAndEarn.java b/DeleteAndEarn.java new file mode 100644 index 00000000..4a382226 --- /dev/null +++ b/DeleteAndEarn.java @@ -0,0 +1,28 @@ +// Time Complexity: O(n) +// space complexity: O(1) +class Solution { + public int deleteAndEarn(int[] nums) { + + int maxElement = Integer.MIN_VALUE; + for(int num: nums) { + maxElement = Math.max(num, maxElement); + } + + int[] arr = new int[maxElement+1]; + + for(int num: nums) { + arr[num] +=num; + } + + int prev = arr[0]; + int curr = arr[1]; + + for(int i = 2; i < arr.length; i++) { + int temp = curr; + curr = Math.max(curr, prev+arr[i]); + prev = temp; + } + + return curr; + } +} \ No newline at end of file diff --git a/HouseRobber.java b/HouseRobber.java new file mode 100644 index 00000000..0df2d3d4 --- /dev/null +++ b/HouseRobber.java @@ -0,0 +1,23 @@ +// Time Complexity: O(n) +// space complexity: O(n) +class Solution { + public int rob(int[] nums) { + + int n = nums.length; + + if(n ==1) { + return nums[0]; + } + + int[] dp = new int[nums.length]; + + dp[0] = nums[0]; + dp[1] = Math.max(nums[0], nums[1]); + + for(int i = 2; i < n; i++) { + dp[i] = Math.max(dp[i-1], dp[i-2]+nums[i]); + } + + return dp[n-1]; + } +} \ No newline at end of file