最接近的三数之和

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最接近的三数之和相关的知识,希望对你有一定的参考价值。

代码:

class Solution {

public:

    int threeSumClosest(vector<int>& nums, int target) {

        int closest = nums[0] + nums[1] + nums[2];

        int diff = abs(closest - target);

        sort(nums.begin(), nums.end());

        for (int i = 0; i < nums.size() - 2; ++i) {

            int left = i + 1, right = nums.size() - 1;

            while (left < right) {

                int sum = nums[i] + nums[left] + nums[right];

                int newDiff = abs(sum - target);

                if (diff > newDiff) {

                    diff = newDiff;

                    closest = sum;

                }

                if (sum < target) ++left;

                else --right;

            }

        }

        return closest;

    }

};

lintcode截图:

技术分享

 

以上是关于最接近的三数之和的主要内容,如果未能解决你的问题,请参考以下文章

力扣16-最接近的三数之和&力扣18-四数之和

最接近的三数之和

LeetCode:最接近的三数之和16

59. 最接近的三数之和

leetcode 16:最接近的三数之和

16. 最接近的三数之和