1. 程式人生 > >LeetCode-3Sum Closest

LeetCode-3Sum Closest

class Solution {
public:
    int threeSumClosest(vector<int> &num, int target)
{
    int result=0;
    int Min=INT_MAX;
    
    sort(num.begin(), num.end());
    vector<int>::iterator iter=num.begin();
    for(;iter!=num.end();++iter)
    {
        auto iter2=next(iter);
        auto iter3=prev(num.end());
        
        while(iter2<iter3)
        {
            const int sum=*iter + *iter2 + *iter3;
            const int gap=abs(sum-target);
        
            if(gap<Min)
            {
               result = sum;
               Min=gap;
            }
        
            if(sum<target) ++iter2;
            else --iter3;
        }
    }
    return result ;
}

};