package in.jk.array;
import java.util.Arrays;
public class TwoSumCloseToZero {
public static void main(String[] args) {
int [] arr = {100,99,1,2,3,4,5,6,7,8,9,10};
int target=105;
Arrays.sort(arr);
System.out.println(Arrays.toString(twoSum(arr, target)));
}
public static int [] twoSum(int [] arr ,int target) {
int [] result =new int [2];
int left = 0;
int right = arr.length-1;
int minSum =Integer.MAX_VALUE;
int l=0;
int r=0;
while (left<right) {
int sum = arr[left]+arr[right];
int diff = Math.abs(target-sum);
if(diff<minSum) {
minSum=diff;
l=left;
r=right;
}else if(sum<target) {
left++;
}else if(sum>target) {
right--;
}else {
return new int[] {arr[l],arr[r]};
}
}
return result;
}
}
Output ::
[5, 100]
No comments:
Post a Comment