首页 > 其他 > 详细

最接近的三数之和

时间:2017-07-25 18:41:44      阅读:247      评论:0      收藏:0      [点我收藏+]

代码:

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截图:

技术分享

 

最接近的三数之和

原文:http://www.cnblogs.com/aly15109725486/p/7235707.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!