3Sum Closest
int threeSumClosest(vector<int> &num, int target) {
// Note: The Solution object is instantiated only once and is reused by each test case.
sort(num.begin(),num.end());
int i,j,k;
int sum,cursum;
int curDiff = INT_MAX;
for(i=0;i<num.size()-2;i++)
{
j = i+1;
k = num.size()-1;
while(j<k)
{
cursum = num[i] + num[j] + num[k];
if(cursum==target)
return cursum;
if(abs(cursum-target)<curDiff)
{
sum = cursum;
curDiff = abs(cursum-target);
}
if(cursum>target)
k--;
else j++;
}
}
return sum;
}
浙公网安备 33010602011771号