3Sum Closest 三数最接近

来源:互联网 发布:版本管理的软件 编辑:程序博客网 时间:2024/04/29 17:28
class Solution {
public:
    int threeSumClosest(vector<int> &num, int target) {
        int result=0;
        if(num.size()==3) return num[0]+num[1]+num[2];
        int mincloset =INT_MAX;
        sort(num.begin(),num.end());
        for(size_t i=0;i<num.size()-1;i++)
        {
            size_t k =num.size()-1;
            size_t j=i+1;
            while(j<k)
            {
             int sum=num[i]+num[j]+num[k];
             int closet=target-sum;
             if(abs(closet)<abs(mincloset))
             {   
                 mincloset=closet;
                 result=sum;
             }
                
                 if(closet>0)
                {
                    j++;
                }
                else
                {
                    k--;
                }
                
                
            }
            
            
        }
return result;
    }
};
0 0
原创粉丝点击