class Solution {
public int threeSumClosest(int[] nums, int target) {
Arrays.sort(nums);
int ans=100000;
int n=nums.length;
for(int p1=0;p1<n;++p1){
int p2=p1+1,p3=n-1;
while(p2<p3){
int sum=nums[p1]+nums[p2]+nums[p3];
if(sum==target){
return target;
}else if(sum>target){
if(Math.abs(sum-target)<Math.abs(ans-target)){
ans=sum;
}
--p3;
}else{
if(Math.abs(sum-target)<Math.abs(ans-target)){
ans=sum;
}
++p2;
}
}
}
return ans;
}
}
和昨天的确实很像,但双指针更加精髓。