var threeSumClosest = function(nums, target) {
let temp;
let min;
//使用循环排序使数组升序排序,用sort排序也可以
for(let i=0;i<nums.length;i++)
{
min=nums[i];
let minIndex=i;
for(let j=i+1;j<nums.length;j++)
{
if(nums[j]<min)
{
min=nums[j];
minIndex=j;
}
}
temp=nums[i];
nums[i]=nums[minIndex];
nums[minIndex]=temp;
}
//使用双指针遍历i右侧的数据
let l,r,sum;
min=nums[0]+nums[1]+nums[nums.length-1];
for(let i=0;i<nums.length;i++)
{
l=i+1;
r=nums.length-1;
while(l<r)
{
sum=nums[i]+nums[l]+nums[r];
//比较与targe的最接近值
if(Math.abs(sum-target)<Math.abs(min-target))
min=sum;
if(sum<target) l++;
else if(sum>target) r--;
else return target;
}
}
return min;
};
力扣 16. 最接近的三数之和 js版
最新推荐文章于 2023-10-27 13:45:15 发布