class Solution {
public:
int threeSumClosest(vector<int> &num, int target) {
int result=0;
if(num.size()==3) return num[0]+num[1]+num[2];
int mincloset =INT_MAX;
sort(num.begin(),num.end());
for(size_t i=0;i<num.size()-1;i++)
{
size_t k =num.size()-1;
size_t j=i+1;
while(j<k)
{
int sum=num[i]+num[j]+num[k];
int closet=target-sum;
if(abs(closet)<abs(mincloset))
{
mincloset=closet;
result=sum;
}
if(closet>0)
{
j++;
}
else
{
k--;
}
}
}
return result;
}
};
public:
int threeSumClosest(vector<int> &num, int target) {
int result=0;
if(num.size()==3) return num[0]+num[1]+num[2];
int mincloset =INT_MAX;
sort(num.begin(),num.end());
for(size_t i=0;i<num.size()-1;i++)
{
size_t k =num.size()-1;
size_t j=i+1;
while(j<k)
{
int sum=num[i]+num[j]+num[k];
int closet=target-sum;
if(abs(closet)<abs(mincloset))
{
mincloset=closet;
result=sum;
}
if(closet>0)
{
j++;
}
else
{
k--;
}
}
}
return result;
}
};