function closestSum(nums, target) { let minDiff = Infinity; let closestSum = 0;

nums.sort((a, b) => a - b); // 排序

for (let i = 0; i < nums.length - 2; i++) { let left = i + 1; let right = nums.length - 1;

while (left < right) {
  let sum = nums[i] + nums[left] + nums[right];
  let diff = Math.abs(target - sum);
  
  if (diff < minDiff) { // 更新最小差值和最接近的三数之和
    minDiff = diff;
    closestSum = sum;
  }
  
  if (sum < target) {
    left++;
  } else {
    right--;
  }
}

}

return closestSum; }

// 示例: let nums = [-1, 2, 1, -4]; let target = 1; console.log(closestSum(nums, target)); // 输出 2

用JavaScript写一个最接近的三数之和函数封装代码

原文地址: https://www.cveoy.top/t/topic/Mcz 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录