(LeetCode)3Sum Closest

来源:互联网 发布:推荐算法的稀疏性问题 编辑:程序博客网 时间:2024/06/09 05:19

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的关系判断应该变大还是变小。

0 0