您的位置:首页 > 其它

leetcode 3Sum Closest

2016-09-02 19:35 381 查看
和之前的3Sum一样,只是等于0换成了求最小差距,  加个cha即可,记得是绝对值!

int threeSumClosest(vector<int>& nums, int target)
{
int i,n,ans,left,right,num1,num2,num3,sum,cha;
n=nums.size();
sort(nums.begin(),nums.end());
ans=99999999;
for(i=0;i<n;i++)
{
num1=nums[i];
left=i+1;
right=n-1;
while(left<right)
{
num2=nums[left];
num3=nums[right];
sum=num1+num2+num3;
if(sum-target>0)
right--;
else if(sum-target<0)
left++;
else if(sum-target==0)
return sum;

cha=sum-target;
if(abs(cha)<abs(ans))
ans=cha;
}
}
return ans+target;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: