int cmp(void*a,void*b)
{
return *(int*)a-*(int*)b;
}
int threeSumClosest(int* nums, int numsSize, int target){
qsort(nums,numsSize,sizeof(int),cmp);
int i;
int min=1000000;
int max;
//printf("\n");
for(i=0;i<numsSize;i++)
{
int left=i+1;
int right=numsSize-1;
while(left<right)
{
int sum=nums[i]+nums[left]+nums[right];
//printf("%d,",sum);
int cha;
if(sum==target)
{
return sum;
}
else if(sum>target)
{
cha=sum-target;
right--;
}
else{
cha=target-sum;
left++;
}
if(cha<=min)
{
min=cha;
max=sum;
}
//printf("%d,",cha);
}
}
return max;
}
力扣.16.最接近的三数之和(C语言)
最新推荐文章于 2024-09-17 16:22:09 发布