[LeetCode] 3Sum Closest
来源:互联网 发布:翻牌抽奖软件 编辑:程序博客网 时间:2024/06/03 20:33
Given an array S of n integers, find threeintegers in S such that the sum is closest to a givennumber, target. Return the sum of the three integers. You mayassume 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).[Analysis]
先对数据按照从小到大排序,然后从头到尾遍历各组合,注意剪枝。
[Solution]
class Solution {
public:
int threeSumClosest(vector<int> &num, int target) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
// sort data
sort(num.begin(), num.end());
int len = num.size();
// initial result
int res = num[0] + num[1] + num[2];
// closest
int min = target > res ? target - res : res - target;
// search
for(int i = 0; i < len - 2; ++i){
for(int j = i + 1; j < len - 1; ++j){
for(int k = j + 1; k < len; ++k){
// 3sum
int sum = num[i] + num[j] + num[k];
// closest
int clo = target > sum ? target - sum : sum - target;
if(clo < min){
res = sum;
min = clo;
}
// cut
if(sum > target)break;
}
}
}
return res;
}
};
说明:版权所有,转载请注明出处。Coder007的博客
- LeetCode: 3 Sum Closest
- leetcode - 3 sum closest
- leetcode 3Sum Closest
- LeetCode: 3Sum Closest
- [Leetcode]3Sum Closest
- Leetcode: 3SUM Closest
- LeetCode 3Sum Closest
- [Leetcode] 3Sum Closest
- LeetCode : 3Sum Closest
- LeetCode 3Sum Closest
- [LeetCode] 3Sum Closest
- 【leetcode】3Sum Closest
- [LeetCode]3Sum Closest
- LeetCode-3Sum Closest
- LeetCode:3Sum Closest
- LeetCode | 3Sum Closest
- 【leetcode】3Sum Closest
- Leetcode: 3Sum Closest
- [LeetCode] Binary Tree Level Order Traversal II
- 由lintcode 655题引发的小思考
- CCF201412-2 Z字形扫描
- [LeetCode] Binary Tree Zigzag Level Order Traversal
- [LeetCode] Binary Tree Maximum Path Sum
- [LeetCode] 3Sum Closest
- 微擎移动端图片上传
- [LeetCode] Add Binary
- [LeetCode] Add Two Numbers
- 05:年龄与疾病
- C# 面试图解2
- [LeetCode] Anagrams
- [LeetCode] Construct Binary Tree from Inorder and Postorder Traversal
- [LeetCode] Construct Binary Tree from Preorder and Inorder Traversal