中等 三数之和 II
29%
通过
给一个包含n个整数的数组S, 找到和与给定整数target最接近的三元组,返回这三个数的和。
您在真实的面试中是否遇到过这个题?Yes
样例
例如S = [-1, 2, 1, -4] and target = 1. 和最接近1的三元组是 -1
+ 2 + 1 = 2.
注意
只需要返回三元组之和,无需返回三元组本身
public class Solution {
/**
* @param numbers: Give an array numbers of n integer
* @param target : An integer
* @return : return the sum of the three integers, the sum closest target.
*/
public int threeSumClosest(int[] numbers ,int target) {
int tran = numbers[0]+numbers[1]+numbers[2];
int ans = transf(tran-target);
int len = numbers.length;
int fin =tran;
int close = ans;
for(int i=0;i<len-2;i++)
{
for(int j=i+1;j<len-1;j++)
{
for(int k=j+1;k<len;k++)
{
tran = numbers[i]+numbers[j]+numbers[k];
close = transf(tran-target);
if(close<ans)
{
ans = close;
fin = tran;
}
}
}
}
return fin;
}
public int transf(int n) {
return n>=0?n:-n;
}
}