【leetcode】16. 3Sum Closest
来源:互联网 发布:在淘宝上怎么退换货 编辑:程序博客网 时间:2024/05/01 15:33
思路:首先排序,然后枚举第一个元素,之后对另外两个元素进行夹逼,
同时不断计算最优值。2个地方可以优化:已经枚举过的相同的元素可以跳过,
其次,有3个值刚好等于target可以直接返回
/** * @author johnsondu * @problem 3Sum Closest * @url https://leetcode.com/problems/3sum-closest/ * @timeComlexity O(n^2) * @spaceComplexity O(1) * @strategy Inserting each number nums[i] into a hash table, * and then for each index i and j, checking the minimm gap. * @status Accepted, runtime beats 56.19% of cpp submissions. 12ms * @time 19:34, Oct 21 2015 */ class Solution {public: int Abs(int x) { return x < 0 ? -x : x; } int threeSumClosest(vector<int>& nums, int target) { int ans = nums[0] + nums[1] + nums[2]; sort(nums.begin(), nums.end()); for(int i = 0; i < nums.size() - 2; i ++) { if(i > 0 && nums[i] == nums[i-1]) continue; int a = nums[i]; int lf = i + 1; int rt = nums.size() - 1; while(lf < rt) { int b = nums[lf]; int c = nums[rt]; if(a + b + c > target) rt --; else if(a + b + c < target) lf ++; else return target; if(Abs(a+b+c-target) < Abs(ans-target)) ans = a + b + c; } } return ans; }};
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
- GCD之主队列、全局并发队列、以及同步任务的执行
- linux c strtol 函数解析
- Bezier曲线绘制方法
- HDU 1072 Nightmare
- C语言传值与传址的区别
- 【leetcode】16. 3Sum Closest
- android studio StackView控件的源码解释和简单示例
- 图像锐化与边缘检测及matlab程序
- SQL 排序查询优化
- HDU 1495 非常可乐 (BFS)
- HDU 5115 Dire Wolf(区间DP)
- 人类的进化过程
- hive实现update与delete
- IOS App Icon Size 图标尺寸 LaunchImage iPhone Portrait 启动画面大小 Image资源使用