Leetcode 第16题

int threeSumClosest(vector<int>& nums, int target) {
        int sum=nums[0]+nums[1]+nums[2];
        int dif=abs(target-sum);
        sort(nums.begin(),nums.end());
        for(int i=0;i<nums.size();i++)
        {
            int left=i+1,right=nums.size()-1;
            while(left<right)
            {
                int tem=nums[i]+nums[left]+nums[right];
                int newdif=abs(target-tem);
                if(newdif<dif)
                {
                    dif=newdif;
                    sum=tem;
                }
                if(tem<target)left++;
                else right--;
            }
        }
        return sum;
    }

猜你喜欢

转载自blog.csdn.net/TempterCyn/article/details/82871326