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