您的位置:首页 > 其它

(LeetCode)3Sum Closest

2014-11-19 22:43 225 查看
class Solution {
public:
int threeSumClosest(vector<int> &num, int target) {
int ans=0,tmp=0;
sort(num.begin(),num.end());
for (int i=0;i<num.size();i++){
int j=i+1;
int k=(int)num.size()-1;
while(j<k){
tmp=num[i]+num[j]+num[k];
if (i==0&&j==i+1&&k==(int)num.size()-1)
ans=tmp;
if(abs(tmp-target)<abs(ans-target))
ans=tmp;
if(ans==target)
return ans;
if(tmp>target)k--;
else j++;
}
}
return ans;
}
};

遍历起点另外两个数一个取最小的另一个取最大的然后根据三个数的和和target的关系判断应该变大还是变小。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: