leetcode 最接近的三数之和 中等

 

 

先做三数之和:https://www.cnblogs.com/rookie-acmer/p/15064102.html

(这里就没有去重了,去重的话还是能优化一些的)

class Solution {
public:
    int threeSumClosest(vector<int>& nums, int target) {
        sort(nums.begin(), nums.end());
        int sum = INT_MAX, ans;
        for(int k = 0; k < nums.size() - 2; ++ k) {
            int i = k + 1, j = nums.size() - 1;
            while(i < j) {
                int tmp = nums[k] + nums[i] + nums[j];
                if(sum > abs(tmp - target)) {
                    sum = abs(tmp - target);
                    ans = tmp;
                }
                if(tmp < target) ++ i;
                else -- j;
            }
        }
        return ans;
    }
};

 

posted @ 2021-07-27 21:12  rookie_Acmer  阅读(34)  评论(0)    收藏  举报