leetcode 16. 3Sum Closest
来源:互联网 发布:伊藤美诚 知乎 编辑:程序博客网 时间:2024/05/29 18:27
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).
解:这一题需要先进行排序,这样就可以将三方的复杂度降低到平方的复杂度。假定一个id1后遍历后面的数组,然后后移id1.
class Solution {public: int threeSumClosest(vector<int>& nums, int target) { if(nums.size() < 3) return 0; int closest = nums[0]+nums[1]+nums[2]; std::sort(nums.begin(), nums.end()); for(int first = 0 ; first < nums.size()-2 ; ++first) { if(first > 0 && nums[first] == nums[first-1]) continue; int second = first+1; int third = nums.size()-1; while(second < third) { int curSum = nums[first]+nums[second]+nums[third]; if(curSum == target) return curSum; if(abs(target-curSum)<abs(target-closest)) { closest = curSum; } if(curSum > target) { --third; } else { ++second; } } } return closest; }};
阅读全文
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
- Python中代码换行
- 编程中表达时的理解,及python中eval函数的用法
- LC滤波器
- Windows线程同步——信号量对象
- 51Nod 消灭兔子
- leetcode 16. 3Sum Closest
- .net core 添加dll
- idea永久破解方法
- day01
- MySQL源码安装与配置
- RunLoop总结:RunLoop的应用场景(三)
- python opencv错误记录
- PhotonServer初探
- 一个ResourceNotFound Exception引发的思考