题目:

我的解答:和第十五题很类似
Arrays.sort(nums);
int res=0;
int differ=1111111;
for(int k=0;k<nums.length;k++) {
int i=k+1,j=nums.length-1;
while(i<j) {
int sum=nums[k]+nums[i]+nums[j];
int diff=Math.abs(sum-target);
if(diff<differ) {
differ=diff;
res=sum;
}
if(sum<target) {
i++;
}else if(sum==target) {
return sum;
}else {
j--;
}
}
}
return res;

本文介绍了一种寻找数组中三个数之和最接近给定目标值的有效算法。通过先排序数组,然后使用双指针技巧遍历并计算与目标值的差距,最终找到最接近目标值的三数之和。
348

被折叠的 条评论
为什么被折叠?



