【数组】16. 最接近的三数之和
题目:

解答:
1 class Solution { 2 public: 3 int threeSumClosest(vector<int>& nums, int target) 4 { 5 sort(nums.begin(),nums.end()); 6 7 int ans = nums[0] + nums[1] + nums[2]; 8 for(int i=0;i < nums.size();i++) 9 { 10 int st = i + 1; 11 int ed = nums.size() - 1; 12 while(st < ed) 13 { 14 int sum = nums[st] + nums[ed] + nums[i]; 15 16 if(abs(target - sum) < abs(target - ans)) 17 { 18 ans = sum; 19 } 20 21 if(sum == target) 22 { 23 return ans; 24 } 25 else if(sum < target) 26 { 27 st++; 28 } 29 else 30 { 31 ed--; 32 } 33 } 34 } 35 return ans; 36 } 37 };

浙公网安备 33010602011771号