源码:
var threeSumClosest = function(nums, target) {
if(nums.length<3) return 0
nums.sort((a,b)=>a-b)
let temp = +Infinity
let res
for(let i=0;i<nums.length-2;i++){
let left=i+1,right=nums.length-1
while(left<right){
if(Math.abs(nums[i]+nums[left]+nums[right]-target)<temp){
temp = Math.abs(nums[i]+nums[left]+nums[right]-target)
res = nums[i]+nums[left]+nums[right]
}
if(nums[i]+nums[left]+nums[right]-target>=0){
right--
} else{
left++
}
}
}
return res
};
结果: