tags:two pointers
解法思想见:http://www.sigmainfy.com/blog/summary-of-ksum-problems.html
代码:
<span style="font-size:18px;">class Solution {
public:
int threeSumClosest(vector<int>& nums, int target) {
sort(nums.begin(), nums.end());
int size = nums.size(), min = INT_MAX;
int temp, i, j, a;
int res = nums[0]+nums[1]+nums[size-1];
for(int k = 0; k <= size-3; k++){
temp = target-nums[k];
i = k+1;
j = size-1;
while(i<j){
a = nums[i]+nums[j]-temp;
if(a==0) return a + target;
if(a>0) j--;
else i++;
if(abs(a)<min){
min = abs(a);
res = a + target;
}
}
}
return res;
}
};</span>