给一个包含n个整数的数组S, 找到和与给定整数target最接近的三元组,返回这三个数的和。
注意
只需要返回三元组之和,无需返回三元组本身
样例
例如S = [-1, 2, 1, -4] and target = 1. 和最接近1的三元组是 -1 + 2 + 1 = 2.
这里用到了选择排序的思想
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> nums, int target) {
// write your code here
int min = 0x7fff;
int m = 0x7fff;
for(int i = 0; i < nums.size(); i++) {
for(int j = i+1; j < nums.size(); j++) {
for(int k = j+1; k < nums.size(); k++) {
int sum = nums[i]+nums[k]+nums[j];
int s = abs(target - sum);
if(m >= s) {
min = sum;
m = s;
}
}
}
}
return min;
}
};