class Solution {
public:
void quick_order(vector<int>& num, int star, int en)//快排
{
int start = star;
int end = en;
if (start >= end)
return; int index = num[start];//就第一个设为阈值
while (start < end)
{
while (start < end && index <= num[end])//先看右边,把第一个小于index数找出
end--; int temp1 = num[start];//交换
num[start] = num[end];
num[end] = temp1; while (start < end && index >= num[start])//再看右边,把第一个大于index的数找出
start++; int temp2 = num[start];//交换
num[start] = num[end];
num[end] = temp2;
} quick_order(num, star, start-);//分左右子集迭代
quick_order(num, start + , en);
return;
} int threeSumClosest(vector<int>& nums, int target) {
int len=nums.size();
long res=*INT_MAX; if(len==)//输入判断
return ; int start=,end=len-;
quick_order(nums,start,end);//快排 for (int c = nums.size()-; c >= ; --c)
{
int tar=target-nums[c];//设置a和b要找的数字
for (int a = , b = c-; a < b; )
{
if (abs(res)>=abs(nums[a]+nums[b]+nums[c]-target))//先检验是否更接近target
res=nums[a]+nums[b]+nums[c]-target; int tmp_sum = nums[a]+nums[b];//再进行下一步迭代
if (tmp_sum < tar)
++a;
else
--b;
}
}
return int(res+target); }
};

分析:

和上个类似,也是O(n^2)时间复杂度遍历。

leecode第十六题(最接近的三数之和)的更多相关文章

  1. Leetcode题库——16.最接近的三数之和

    @author: ZZQ @software: PyCharm @file: threeSumClosest.py @time: 2018/10/14 20:28 说明:最接近的三数之和. 给定一个包 ...

  2. LeetCode 16. 3Sum Closest(最接近的三数之和)

    LeetCode 16. 3Sum Closest(最接近的三数之和)

  3. lintcode-59-最接近的三数之和

    59-最接近的三数之和 给一个包含 n 个整数的数组 S, 找到和与给定整数 target 最接近的三元组,返回这三个数的和. 注意事项 只需要返回三元组之和,无需返回三元组本身 样例 例如 S = ...

  4. LeetCode:最接近的三数之和【16】

    LeetCode:最接近的三数之和[16] 题目描述 给定一个包括 n 个整数的数组 nums 和 一个目标值 target.找出 nums 中的三个整数,使得它们的和与 target 最接近.返回这 ...

  5. Java实现 LeetCode 16 最接近的三数之和

    16. 最接近的三数之和 给定一个包括 n 个整数的数组 nums 和 一个目标值 target.找出 nums 中的三个整数,使得它们的和与 target 最接近.返回这三个数的和.假定每组输入只存 ...

  6. Leetcode13. 罗马数字转整数Leetcode14. 最长公共前缀Leetcode15. 三数之和Leetcode16. 最接近的三数之和Leetcode17. 电话号码的字母组合

    > 简洁易懂讲清原理,讲不清你来打我~ 输入字符串,输出对应整数 ![在这里插入图片描述](https://img-blog.csdnimg.cn/63802fda72be45eba98d9e4 ...

  7. LeetCode-016-最接近的三数之和

    最接近的三数之和 题目描述:给定一个包括 n 个整数的数组 nums 和 一个目标值 target.找出 nums 中的三个整数,使得它们的和与 target 最接近.返回这三个数的和.假定每组输入只 ...

  8. #leetcode刷题之路16-最接近的三数之和

    给定一个包括 n 个整数的数组 nums 和 一个目标值 target.找出 nums 中的三个整数,使得它们的和与 target 最接近.返回这三个数的和.假定每组输入只存在唯一答案. 例如,给定数 ...

  9. LeetCode 16. 3Sum Closest. (最接近的三数之和)

    Given an array S of n integers, find three integers in S such that the sum is closest to a given num ...

  10. 最接近的三数之和(给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数, 使得它们的和与 target 最接近。返回这三个数的和)

    例如,给定数组 nums = [-1,2,1,-4], 和 target = 1. 与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2). 思路:首先对数组进行排序     ...

随机推荐

  1. close yield

    close的方法主要是关闭子生成器,需要注意的有4点: 1.如果生成器close后,还继续next,会报错StopIteration   [图片]     2.如果我捕获了异常,将GeneratorE ...

  2. MySQL按指定字段自定义列表排序

    亲测实例: 1级排序:同城>异城 2级排序:未领养>以领养 3级排序:发布最新靠前 MYSQL语句如下: SELECT ura.id,ura.city,ura.uid,ura.rescue ...

  3. JavaScript数组实现图片轮播

    最终效果 注:图片来源于百度图片 文件结构: 代码: <!DOCTYPE html> <html> <head> <meta charset="UT ...

  4. Mybatis打印不出SQL日志

    要是mybatis项目打印出日志,只需要在log4j的配置文件中加上下面一段即可 log4j.logger.com.ibatis=debug log4j.logger.com.ibatis.commo ...

  5. ionic + angular + cordova, 打造专属自己的App!

    ionic 学习地址:http://ionicframework.com/ ionic 好处: ionic serve --lab  预览平台间的差异化 sass                  提 ...

  6. ReentrantLock$Sync.tryRelease java.lang.IllegalMonitorStateException

    早上一来,例行性的看主要环境的运行情况,发现有个环境中有如下异常: 17-02-28 08:13:37.368 ERROR pool-2-thread-65 com.ld.net.spider.Spi ...

  7. 尝试解决cifar10问题

    我理解这个问题和猫狗的不同,在于将2类扩展为10类,其它的地方我准备采用相同的方法. 注意事项: 1.我要用kaggle的数据集,而不是用其它的数据集: 2.最终得到的结果要以test为导向: 1.先 ...

  8. shell if 语句

    一.过程式 编程语言的代码执行顺序: a.顺序执行:逐条执行: b.选择执行: 代码有一个分支:条件满足时才会执行: 俩个或以上的分支:只会执行其中一个满足条件的分支: c.循环执行: 代码片段(循环 ...

  9. c++中ifstream一次读取整个文件

    转载:http://www.cnblogs.com/kex1n/p/4028428.html 第一种方法: 读取至std::string的情况: #include <string> #in ...

  10. 安装ubuntu的坑&RHEL7配置

    1.需要其他设置->分区,分区需要有/根目录分区和swap空间,后者文件系统类型选择swap,其他都是ext4 2.普通配置电脑,安装16.04.5 LTS,不要安装最新的,安装重启后卡在那里, ...