https://oj.leetcode.com/problems/3sum-closest/

给一列数和target,在这一列数中找出3个数,使其和最接近target,返回这个target。

一般思路是 n*n*n,优化的话,如下:

先给数排序,然后对第一个数进行遍历 i,第二个数为i+1,第三个数为len-1,看得出的和于target的比较。如果小于target,则第二个数下标++,如果大于target,则第三个数下标--。

class Solution {
public:
int threeSumClosest(vector<int> &num, int target) {
int len = num.size();
if(len<)
return ;
if(len == )
return num[]+num[]+num[]; sort(num.begin(),num.end());
int nearAns = num[]+num[]+num[];
for(int i = ;i<len;i++)
{
int j = i+;
if(j>len-)
break;
int k = len-; while(j<k)
{
int sum = num[i]+num[j]+num[k];
if(sum == target)
return target;
if(sum<target)
{
if(abs(target - sum) < abs(target - nearAns))
nearAns = sum;
j++;
}
if(sum>target)
{
if(abs(target - sum) < abs(target - nearAns))
nearAns = sum;
k--;
}
}
}
return nearAns;
}
};

最新文章

  1. 源文件移动后gdb不显示代码的原因
  2. 分配和释放 BSTR 的内存
  3. Python的文本数据
  4. js addEventListener attachEvent
  5. UVa 1607 (二分) Gates
  6. 用Shell实现俄罗斯方块代码(Tetris.sh)
  7. 关于GNU软件的版本号命名规则
  8. Nginx均衡TCP协议服务器案例
  9. 导出excel 的方法及示例
  10. Google工程师巩朋的算法之路(1)
  11. Gcd&amp;Exgcd算法学习小记
  12. 用sklearn 实现linear regression
  13. Django2 SQLite3迁移到MySQL数据库
  14. Mysql按条件计数的几种方法
  15. week3-构造一个简单的linux系统
  16. CF527D
  17. Yii2中的composer
  18. Sonar理论篇
  19. UI自动化环境准备
  20. 排序基础之插入排序、冒泡排序、选择排序详解与Java代码实现

热门文章

  1. python模块汇总练习
  2. HDU:2846-Repository
  3. 动态规划:HDU3496-Watch The Movie(二维费用的背包问题)
  4. f触发器、存储过程
  5. 51NOD 1292 1277(KMP算法,字符串中的有限状态自动机)
  6. vrpie在Visio Studio 中无法调试的问题
  7. IOS开发学习笔记019-动态创建控件
  8. [oldboy-django][2深入django]登录注册页面验证码
  9. 平时代码中不符合python风格的举例
  10. java-dispose方法