Leetcode: 3Sum Closest
2013-10-09 00:11
302 查看
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).
int threeSumClosest(vector<int> &num, int target) { // Start typing your C/C++ solution below // DO NOT write int main() function int numlen = num.size(); if(numlen<3)return -1; sort(num.begin(),num.end()); int minGap = num[0]+num[1]+num[2]-target; for(int i = 0; i <= numlen-3; i++) { int begin = i+ 1; int end = numlen-1; while(begin < end) { int curGap = num[i]+num[begin]+num[end]-target; if(curGap == 0) return target; if(abs(curGap) < abs(minGap)) minGap = curGap; if(curGap < 0) begin++; else end--; } } return target+minGap; }
相关文章推荐
- [LeetCode 解题报告]016. 3Sum Closest
- 【leetcode】3SumClosest
- [LeetCode] 16. 3Sum Closest
- [LeetCode] 3Sum Closest
- Leetcode--3Sum Closest
- 【leetcode】【16】3Sum Closest
- LeetCode:3Sum Closest
- LeetCode 016 3Sum Closest
- 【LeetCode】3Sum && 3Sum Closest && 4Sum
- leetcode-3Sum Closest
- LeetCode (16)3Sum Closest
- Java [leetcode 16] 3Sum Closest
- LeetCode : 3Sum Closest
- LeetCode 16 3Sum Closest
- leetcode--16. 3Sum Closest
- leetcode:3Sum Closest
- leetcode 57: 3Sum Closest
- LeetCode - 3Sum Closest
- leetcode-16. 3Sum Closest
- [LeetCode]—3Sum Closest 求数组中三个数之和最接近给定target的组合