Untitled
unknown
java
a year ago
2.3 kB
128
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