16. 3Sum Closest
来源:互联网 发布:注册了com的域名能卖吗 编辑:程序博客网 时间:2024/06/05 19:17
1、题目描述
给一个数组和一个target,返回三个元素之和,使得该和与target最接近。
2、思路
与3sum类似,Two Pointers。
如果三数之和正好为target,则返回target。
如果三数之和与target之差的绝对值小于ans和target绝对值,则更新ans。
复杂度O(n^2)。
3、代码
int threeSumClosest(vector<int>& nums, int target) { int ans=nums[0]+nums[1]+nums[2]; sort(nums.begin(),nums.end()); int n =nums.size(); for(int i=0;i<n;i++){ if(i==0||(nums[i]>nums[i-1])){ for(int j=i+1,k=n-1;j<k;){ if(nums[j]+nums[k]+nums[i]==target){ return target; } else if(nums[j]+nums[k]+nums[i]<target){ if(abs(ans-target)>abs(nums[j]+nums[k]+nums[i]-target)) ans = nums[j]+nums[k]+nums[i]; j++; } else{ if(abs(ans-target)>abs(nums[j]+nums[k]+nums[i]-target)) ans = nums[j]+nums[k]+nums[i]; k--; } } } } return ans; }
阅读全文
0 0
- 16. 3Sum Closest
- 16. 3Sum Closest
- 16. 3Sum Closest
- 16. 3Sum Closest
- 16. 3Sum Closest
- 16. 3Sum Closest
- 16. 3Sum Closest
- 16. 3Sum Closest
- 16. 3Sum Closest
- 16. 3Sum Closest
- 16. 3Sum Closest
- 16. 3Sum Closest
- 16. 3Sum Closest
- 16. 3Sum Closest
- 16. 3Sum Closest
- 16. 3Sum Closest
- 16. 3Sum Closest
- 16. 3Sum Closest
- 动态规划之最少硬币找零问题
- 大写字母转换小写字母
- mapreduce入门
- 大数相加
- 高斯投影转换(3度带)
- 16. 3Sum Closest
- Hi3519V101色彩空间转换总结(一)
- 【转载】devhelp的使用小结 --zealoussnow
- JVM在嵌入式linux下的移植
- 函数
- 快速排序&sort()用法
- 以最简单方式学习Linux
- 复杂数据结构——哈希表与映射、图
- Palindrome Number