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; } };