class Solution {
public:
int threeSumClosest(vector<int> &num, int target) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
int retNumber;
if( num.size() < 3 )
return 0;
sort( num.begin() , num.end());
int diffValue = INT_MAX;
int size = num.size() ;
for( int indx = 0 ; indx < size ; ++indx )
{
int begin = indx + 1;
int end = size - 1;
while( begin < end )
{
int sum = num[indx] + num[begin] + num[end];
if( sum < target )
{
if( target - sum < diffValue )
{
diffValue = target - sum ;
retNumber = sum;
}
++begin;
}
else if( sum > target )
{
if( sum - target < diffValue )
{
diffValue = sum - target;
retNumber = sum;
}
--end;
}
else
{
diffValue = 0 ;
retNumber = target ;
break;
}
}
}
return retNumber;
}
};
Three Sum Closet
最新推荐文章于 2022-11-17 15:26:43 发布