微信公众号:醉前端,关注可了解更多题目。
题 目
Q:
给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。
示例:给定数组 nums = [-1,2,1,-4], 和 target = 1.与 target最接近的三个数的和为 2. (-1 + 2 + 1 = 2).
答 案
const threeSumClosest = (nums, target) => {
nums.sort();
let closeNum = nums[0] + nums[1] + nums[2];
for(let i =0 ; i < nums.length -2; i++){
let l = i + 1, r = nums.length -1;
while(l < r) {
let threeSum = nums[l] + nums[r] + nums[i];
if(Math.abs(threeSum - target) < Math.abs(closeNum - target)){
closeNum = threeSum;
}
if(threeSum > target) {
r--;
}else if(threeSum < target) {
l++;
}else{
return target;
}
}
}
return closeNum;
};
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。