假设数组a有N个元素,元素的取值为1~N,如何判断数组是否存在重复元素
方法一:对数组进行排序,然后比较相邻的元素是否相同。时间复杂度为O(nlogn),空间复杂度为O(1);
代码
int comp(const void *a,const void *b){
return (*(int *)a -*(int *)b);
}
int isArrayRepeat(int* a,int n){
int i = 0;
if(!a||n<1)
return -1;
qsort(a,n,sizeof(int),comp);//快速排序
for(i = 0;i<n-1;i++)
{
if(a[i] == a[i+1])
{
return 1;
}
}
return 0;
}
本文介绍了一种通过排序和比较相邻元素来检测数组中是否存在重复元素的方法。该方法适用于元素值范围限定的情况,时间复杂度为O(nlogn),空间复杂度为O(1)。
506

被折叠的 条评论
为什么被折叠?



