[leetcode] 16. 3Sum Closest
来源:互联网 发布:umeng移动端数据统计 编辑:程序博客网 时间:2024/05/01 20:52
Given an array S of n integers, find three integers in S such that the sum is closest to a given number, target. Return the sum of the three integers. You may assume that each input would have exactly one solution.
For example, given array S = {-1 2 1 -4}, and target = 1. The sum that is closest to the target is 2. (-1 + 2 + 1 = 2).
这道题是找出数组中三个数相加最接近给定值的相加和,题目难度为Medium。
这道题基本和第15题一样,解题思路请查看第15题(传送门)的详解。不同的地方是需要记录下当前最接近给定值的相加和,每次进行判断取最接近的替换记录值。具体代码:
class Solution {public: int threeSumClosest(vector<int> &num, int target) { int rst = 0; if(num.size() < 3) return 0; sort(num.begin(), num.end()); rst = num[0] + num[1] + num[2]; for(int i=0; i<num.size()-2; i++) { if(i > 0 && num[i] == num[i-1]) continue; for(int j=i+1, k=num.size()-1; j<k;) { int sum = num[i] + num[j] + num[k]; if(abs(sum-target) < abs(rst-target)) rst = sum; if(sum < target) { do {j++;} while(num[j] == num[j-1] && j < k); } else if(sum > target) { do {k--;} while(num[k] == num[k+1] && j < k); } else { return target; } } } return rst; }};
0 0
- LeetCode 16. 3Sum Closest
- LeetCode --- 16. 3Sum Closest
- [Leetcode] 16. 3Sum Closest
- 【leetcode】16. 3Sum Closest
- [leetcode] 16. 3Sum Closest
- leetcode 16. 3Sum Closest
- leetcode 16. 3Sum Closest
- leetcode 16. 3Sum Closest
- LeetCode - 16. 3Sum Closest
- [LeetCode]16. 3Sum Closest
- LeetCode 16. 3Sum Closest
- LeetCode *** 16. 3Sum Closest
- Leetcode 16. 3Sum Closest
- leetcode 16. 3Sum Closest
- 【LeetCode】16. 3Sum Closest
- leetcode 16. 3Sum Closest
- 【leetcode】16. 3Sum Closest
- leetcode 16. 3Sum Closest
- 微信XML解析
- KVO Considered Harmful
- shell脚本中单引号和双引号的区别
- apache下配置多域名。
- 在模板类成员函数入参中使用回调函数指针
- [leetcode] 16. 3Sum Closest
- ibaits 中 $ 与 # 及 remapResults的用法
- oracle 动静态参数
- RxJava开发精要1-从.NET到RxJava
- 学习中
- linux常用命令——文件传输(三)
- Yii2下路由设定
- JS 继承与重写
- hdu1021——Fibonacci Again