用JavaScript写一个最接近的三数之和函数封装代码
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
原文地址: https://www.cveoy.top/t/topic/Mcz 著作权归作者所有。请勿转载和采集!