
链接:https://www.lintcode.com/problem/59/description
题解:
class Solution {
public:
/**
* @param numbers: Give an array numbers of n integer
* @param target: An integer
* @return: return the sum of the three integers, the sum closest target.
*/
int threeSumClosest(vector<int> &numbers, int target) {
// write your code here
int len = numbers.size();
if (len <= 0) {
return 0;
}
sort(numbers.begin(), numbers.end());
int result = INT_MAX;
for (int i = 0; i < numbers.size(); ++i) {
int l = i + 1;
int r = len-1;
int sum = numbers[i];
while (l < r) {
sum = numbers[i] + numbers[l] + numbers[r];
if (abs(sum-target) < abs(result-target)) {
result = sum;
}
if (sum > target) {
--r;
} else if (sum < target) {
++l;
} else {
return target;
}
}
}
return result;
}
};
2493

被折叠的 条评论
为什么被折叠?



