java
三指针
class Solution {
public int threeSumClosest(int[] nums, int target) {
Arrays.sort(nums);
int res=Integer.MAX_VALUE;
int ans=0;
int k=0;
int i=1;
int j=nums.length-1;
while(k!=nums.length-2) {
while(i!=j) {
int sum=nums[i]+nums[j]+nums[k];
int cha=Math.abs(sum-target);
if(cha<res) {
res=cha;
ans=sum;
//System.out.println("√"+nums[i]+" "+nums[j]+" "+nums[k]+"="+cha);
}
if(sum<target) {
i++;
}
else {
j--;
}
}
k++;
i=k+1;
j=nums.length-1;
}
return ans;
}
}