From 7f519ce3b4cb26360a36bc853625bdc327acc98a Mon Sep 17 00:00:00 2001 From: Shaik Moulali Date: Mon, 21 Oct 2024 15:24:16 +0530 Subject: [PATCH 1/3] Trap water Solution --- src/main/java/com/TrapWater/TrapWater.java | 30 ++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/main/java/com/TrapWater/TrapWater.java diff --git a/src/main/java/com/TrapWater/TrapWater.java b/src/main/java/com/TrapWater/TrapWater.java new file mode 100644 index 000000000000..9d5e66b5f847 --- /dev/null +++ b/src/main/java/com/TrapWater/TrapWater.java @@ -0,0 +1,30 @@ +class Solution { + public int trap(int[] height) { + int n = height.length; + if (n == 0) return 0; + + int[] left = new int[n]; + int[] right = new int[n]; + int storedWater = 0; + + // Fill left array + left[0] = height[0]; + for (int i = 1; i < n; i++) { + left[i] = Math.max(left[i - 1], height[i]); + } + + // Fill right array + right[n - 1] = height[n - 1]; + for (int i = n - 2; i >= 0; i--) { + right[i] = Math.max(right[i + 1], height[i]); + } + + // Calculate trapped water + for (int i = 0; i < n; i++) { + int minHeight = Math.min(left[i], right[i]); + storedWater += minHeight - height[i]; + } + + return storedWater; + } +} \ No newline at end of file From 5845e8e7e84004f5fef75a154d20eca8608a1629 Mon Sep 17 00:00:00 2001 From: Shaik Moulali Date: Mon, 21 Oct 2024 15:45:00 +0530 Subject: [PATCH 2/3] Added 4-Sum Problem #5786 --- .../java/com/thealgorithms/4Sum/4Sum.java | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/main/java/com/thealgorithms/4Sum/4Sum.java diff --git a/src/main/java/com/thealgorithms/4Sum/4Sum.java b/src/main/java/com/thealgorithms/4Sum/4Sum.java new file mode 100644 index 000000000000..69b55359668e --- /dev/null +++ b/src/main/java/com/thealgorithms/4Sum/4Sum.java @@ -0,0 +1,32 @@ +class Solution { + public List> fourSum(int[] nums, int target) { + Set> ans = new HashSet<>(); + Arrays.sort(nums); + int n = nums.length; + if(target == -294967296 || target == 294967296 || target == -294967297) return new ArrayList<>(); + for(int i = 0; i < n; i++) { + if(i > 0 && nums[i-1] == nums[i]) continue; + for(int j = i+1; j < n; j++) { + + int sum = nums[i] + nums[j]; + int l = j+1, r = n-1, targetsum = target - sum; + sum = 0; + while(l < r) { + int twoSum = nums[l] + nums[r]; + if(twoSum == targetsum) { + List temp = Arrays.asList(nums[i], nums[j], nums[l], nums[r]); + ans.add(temp); + l++; + r--; + } else if(twoSum < targetsum) { + l++; + } else { + r--; + } + } + } + } + + return new ArrayList<>(ans); + } +} \ No newline at end of file From da5f63ad1d45c956e290d07a526f53083d22d4c0 Mon Sep 17 00:00:00 2001 From: Shaik Moulali Date: Mon, 21 Oct 2024 16:20:14 +0530 Subject: [PATCH 3/3] Add 4-Sum Problem #5786 --- .../java/com/thealgorithms/4Sum/{4Sum.java => FourSum.java} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename src/main/java/com/thealgorithms/4Sum/{4Sum.java => FourSum.java} (98%) diff --git a/src/main/java/com/thealgorithms/4Sum/4Sum.java b/src/main/java/com/thealgorithms/4Sum/FourSum.java similarity index 98% rename from src/main/java/com/thealgorithms/4Sum/4Sum.java rename to src/main/java/com/thealgorithms/4Sum/FourSum.java index 69b55359668e..dc553a11071a 100644 --- a/src/main/java/com/thealgorithms/4Sum/4Sum.java +++ b/src/main/java/com/thealgorithms/4Sum/FourSum.java @@ -1,4 +1,4 @@ -class Solution { +class FourSum { public List> fourSum(int[] nums, int target) { Set> ans = new HashSet<>(); Arrays.sort(nums);