15,440
社区成员
发帖
与我相关
我的任务
分享
#include<stdio.h>
#include<stdlib.h>
int* findDuplicates(int* nums, int numsSize, int* returnSize);
int main(void)
{
int N;
scanf("%d",&N);
int arr[N];
int* size=malloc(sizeof(int));
for(int i=0;i<N;i++)
scanf("%d",&arr[i]);
int* duplicates=findDuplicates(arr,N,size);
//for(int i=0;i<*size;i++)
// printf("%d ",duplicates[0]);
return 0;
}
int* findDuplicates(int* nums, int numsSize, int* returnSize)
{
int* result=malloc(sizeof(int)*numsSize);
int count=0;
for(int i=0;i<numsSize;i++)
{
int index=abs(nums[i])-1;
if(nums[index]<0)
result[count++]=index+1;
else
nums[index]=-nums[index];
}
*returnSize = count;
return result;
}