class Solution {
public int threeSumClosest(int[] nums, int target) {
if (nums.length==0){return 0;}
Arrays.sort(nums); //排序
int distance = nums[0] + nums[1] + nums[2] - target;
for(int i=0;i<nums.length;i++){
if(distance==0)break;
int r=nums.length -1;
int l= i+1;
while(l<r){
int dis = (nums[l] + nums[r] + nums[i]) - target;
if(dis == 0){
distance =dis;
break;}
if(Math.abs(distance) > Math.abs(dis)){
distance = dis;
}
if (dis > 0) r--;
else l++;
}
}
return distance + target;
}
}
来源:CSDN
作者:顶尖菜鸟
链接:https://blog.csdn.net/qq_40946639/article/details/104682386