69,373
社区成员
发帖
与我相关
我的任务
分享
/**
* Return an array of size *returnSize.
* Note: The returned array must be malloced, assume caller calls free().
*/
int* singleNumber(int* nums, int numsSize, int* returnSize) {
int cmp(const void* a,const void* b)
{
return *(int*)a-*(int*)b;
}
qsort(nums,numsSize,sizeof(int),cmp);
for(int n=0;n<numsSize;n++)
{
printf("%d",*(nums+n));
}
int* result;
result=(int*)malloc(sizeof(int)*2);
for(int n=0;n<numsSize-1&&*returnSize<2;)
{
if(*(nums+n)!=*(nums+n+1))
{
*(result+*(returnSize))=*(nums+n);
(*returnSize)++;
n++;
}
else
{
n+=2;
}
}
if(*returnSize==1)
{
*(result+1)=*(nums+numsSize-1);
(*returnSize)++;
}
return result;
}