16.jpeg

    代码 :

    1. class Solution {
    2. public:
    3. typedef pair<int, int> PII;
    4. int threeSumClosest(vector<int>& nums, int target) {
    5. if(nums.size() < 3) return 0;
    6. sort(nums.begin(), nums.end());
    7. int gap = INT_MAX, res = 0;
    8. for(int i = 0; i < nums.size(); i ++ ) {
    9. for(int j = i + 1, k = nums.size() - 1; j < k; ) {
    10. int sum = nums[i] + nums[j] + nums[k];
    11. if(abs(sum - target) < gap) res = sum, gap = abs(sum - target);
    12. if(sum == target) return sum;
    13. else if (sum < target) j ++;
    14. else k --;
    15. }
    16. }
    17. return res;
    18. }
    19. };