/**

  • @param {number[]} nums
  • @param {number} target
  • @return {number} */ function threeSumClosest(nums, target) { // 将数组从小到大排序 nums.sort((a, b) => a - b); // 初始化最小差值为无穷大 let minDiff = Infinity; let result = 0; // 遍历数组,以每个数为基准,找到与其和最接近 target 的两个数 for (let i = 0; i < nums.length; i++) { let left = i + 1; let right = nums.length - 1; while (left < right) { const sum = nums[i] + nums[left] + nums[right]; // 如果和与 target 的差值更小,更新最小差值和结果 if (Math.abs(sum - target) < minDiff) { minDiff = Math.abs(sum - target); result = sum; } // 如果和大于 target,将右指针左移 if (sum > target) { right--; } else { // 如果和小于 target,将左指针右移 left++; } } } return result; }
JavaScript 实现三数之和最接近目标值算法 - 优化代码和注释

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

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