Leetcode 16. 最接近的三数之和

原创 2018年04月15日 16:48:15

和Leetcode15题类似

class Solution {
public:
    int threeSumClosest(vector<int>& nums, int target) {
        int ans = 99999999 + target, kk;
        sort(nums.begin(), nums.end());
        for (int i = 0; i + 2 < nums.size(); ++i) {
            if (i > 0 && nums[i] == nums[i - 1]) continue;
            int l = i + 1, r = nums.size() - 1, sum = -nums[i] + target;//第一个元素
            while (l < r) {//找二元组,使第一个元素和二元组和为0
                while (l<r && nums[r] + nums[l] > sum) --r;
                if (l < r) {//匹配的情况
                    kk = nums[i] + nums[r] + nums[l];
                    if (abs(kk - target) < abs(ans - target)) ans = kk;
                    if (r != nums.size() - 1) kk = nums[i] + nums[r + 1] + nums[l];
                    if (abs(kk - target) < abs(ans - target)) ans = kk;
                }
                else {
                    kk = nums[i] + nums[l + 1] + nums[l];
                    if (abs(kk - target) < abs(ans - target)) ans = kk;
                }
                if (nums[l] == nums[r]) break;
                while (l < r && nums[l] == nums[l + 1]) ++l;
                ++l;
            }
        }
        return ans;
    }
};
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Bendaai/article/details/79950674

[LeetCode] 16. 3Sum Closest 最接近的三数之和 @python

Description Given an array S of n integers, find three integers in S such that the sum is closest t...
  • iyuanshuo
  • iyuanshuo
  • 2018-03-18 13:54:23
  • 34

Leetcode #16 3Sum Closest 找3数之和最接近 解题小节

1 题目理解昨晚上光顾着吃深夜泡面,忘了更新了。。所以这一更就算是补上昨天的,今天的另算。这道题和 Leetcode #15 3Sum 三数之和 解题小节 很像,区别是#15是要三数之和等于目标值,这...
  • MebiuW
  • MebiuW
  • 2016-03-19 10:13:59
  • 519

[LeetCode] 3Sum Closest 最近的三数之和 Python

3Sum Closest: Given an array S of n integers, find three integers in S such that the sum is close...
  • jerry81333
  • jerry81333
  • 2017-07-24 16:31:37
  • 300

LeetCode 3Sum Closest 最接近目标数的三个数和

这道题和3Sum差不多,不过也有不一样的,主要是: 1 这里不用判断处理重复问题 2 要比较其中的三个数的和与目标数的差的大小。...
  • kenden23
  • kenden23
  • 2013-11-25 09:13:02
  • 2929

C++实现LeetCode(三个数的和最接近目标数)

Leetcode:16题: Given an array S of n integers, find three integers in S such that the sum is closest...
  • a173373310
  • a173373310
  • 2017-08-14 19:06:25
  • 366

【LeetCode-面试算法经典-Java实现】【016-3 Sum Closest(最接近的三个数的和)】

【016-3 Sum Closest(最接近的三个数的和)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】原题  Given an array S of n integers, ...
  • DERRANTCM
  • DERRANTCM
  • 2015-07-21 07:22:05
  • 2796

LintCode:最接近的三数之和

LintCode:最接近的三数之和class Solution: """ @param numbers: Give an array numbers of n integer ...
  • u012225151
  • u012225151
  • 2016-09-14 00:08:41
  • 381

LintCode 59 最接近的三数之和

题目:threeSumClosest要求:给一个包含 n 个整数的数组 S, 找到和与给定整数 target 最接近的三元组,返回这三个数的和。 注意事项 只需要返回三元组之和,无需返回三元组本...
  • linglian0522
  • linglian0522
  • 2017-05-01 14:45:32
  • 354

最接近的三数之和

题目描述:给一个包含 n 个整数的数组 S, 找到和与给定整数 target 最接近的三元组,返回这三个数的和。 样例:例如 S = [-1, 2, 1, -4] and target = 1. 和...
  • guoziqing506
  • guoziqing506
  • 2016-09-06 14:39:26
  • 1036

LeetCode OJ 之 3Sum (三个数的和)

题目: Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find...
  • u012243115
  • u012243115
  • 2014-11-21 22:15:37
  • 960
收藏助手
不良信息举报
您举报文章:Leetcode 16. 最接近的三数之和
举报原因:
原因补充:

(最多只允许输入30个字)