您的位置:首页 > 其它

[LeetCode] 16. 3Sum Closest

2016-07-17 00:54 471 查看
思路:

和3Sum差不多, 因为最终只要返回一个结果值, 所以更省事, 在内层循环做各种判断即可, 其他的可以看上一篇3Sum的文章.

int threeSumClosest(vector<int>& nums, int target) {
int res;
sort(nums.begin(), nums.end());
for (int i = 0; i < nums.size(); i++) {
if (i && nums[i] == nums[i - 1]) continue;
int head = i + 1, tail = nums.size() - 1;
while (head < tail) {
int sum = nums[i] + nums[head] + nums[tail];
if (sum == target) return sum;
if (abs(sum - target) < abs(res - target)) res = sum;
if (sum < target) head++;
else tail--;
}
}
return res;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode