Q. Find the two elements in an array such that their sum is closet to zero.
package com.manish;
import java.util.Arrays;
public class MinTest
{
public static void main(String[] args)
{
int arr[]=new int[]{5,3,1,-8,-8,6};
minSum(arr);
}
public static void minSum(int arr[])
{
int l, r , min_sum,min_left,min_right,tempsum = 0;
if(arr.length<2)
{
System.out.println("invalid input");
}
Arrays.sort(arr);
l=0;r=arr.length-1;
min_sum=arr[l]+arr[r];
min_left=l;
min_right=r;
while(l<r)
{
tempsum=arr[l]+arr[r];
if(Math.abs(tempsum) < Math.abs(min_sum))
{
min_left=l;
min_right=r;
min_sum=tempsum;
}
if(tempsum < 0) l++;
else r--;
}
System.out.println(arr[min_left]+" "+arr[min_right]);
}
}
No comments:
Post a Comment