题目:Given an array S of n integers, find three integers in S such that the sum is closest to a given number, target. Return the sum of the three integers. You may assume that each input would have exactly one solution.
import java.util.*;
public class Solution {
public int threeSumClosest(int[] num, int target) {
int min=Integer.MAX_VALUE;
int tsum;
int ca=0;
Arrays.sort(num);
for(int i=0;i<=num.length-3;i++)
{
int low =i+1,high=num.length-1;
while(low<high)
{
tsum=num[i]+num[low]+num[high];
if(tsum==target)
{
return tsum;
}
int dist =Math.abs(target-tsum);
if(dist<min)
{
min=dist;
ca =tsum;
}
if(tsum<target)
{
low++;
}
else
{
high--;
}
}
}
return ca;
}
}