码迷,mamicode.com
首页 > 其他好文 > 详细

最接近的三数之和

时间:2017-07-25 19:33:31      阅读:115      评论:0      收藏:0      [点我收藏+]

标签:while   lin   nbsp   ++   logs   sum   log   for   ++i   

代码:

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

技术分享

 

最接近的三数之和

标签:while   lin   nbsp   ++   logs   sum   log   for   ++i   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!