Untitled
unknown
java
a year ago
2.3 kB
124
Indexable
import java.util.Scanner; import java.util.Arrays; class Main { public static void main(String[] args) { // int[] arr = {2,4,8,11,12,14}; // int[] ans = twoSum(arr,15); // System.out.println(ans[0] + " " + ans[1]); int[] nums = {2,4,7,9,12,14}; threeSum(nums, 23); } public int maxArea(int[] height) { int n = height.length; int maxArea = 0; for(int i=0; i<n; i++){ for(int j=i+1; j<n; j++){ int h = Math.min(height[i], height[j]); int w = j - i; int currArea = h*w; if(currArea > maxArea){ maxArea = currArea; } } } return maxArea; } public int maxArea2(int[] height) { int n = height.length; int l = 0; int r = n-1; int maxArea = 0; while(l < r){ int h = Math.min(height[l], height[r]); int w = r - l; int currArea = h*w; if(currArea > maxArea){ maxArea = currArea; } if(height[l] < height[r]){ l++; } else { r--; } } return maxArea; } public static int[] twoSum(int[] nums, int target) { int n = nums.length; int l = 0; int r = n-1; while(l < r){ int csum = nums[l] + nums[r]; if(csum == target){ return new int[]{l,r}; } else if(csum < target){ l++; } else { r--; } } return new int[]{}; } public static void threeSum(int[] nums, int target) { Arrays.sort(nums); int n = nums.length; for(int i=0; i<n; i++){ int newTar = target - nums[i]; int l = i + 1; int r = n - 1; while(l < r){ int csum = nums[l] + nums[r]; if(csum == newTar){ System.out.println("Triplet is " + nums[i] + "," + nums[l] + "," + nums[r]); l++; } else if(csum < newTar){ l++; } else { r--; } } } } }
Editor is loading...
Leave a Comment