力扣,最接近三数之和,js解法

31 阅读1分钟

源码:

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
};

结果:

image.png