新建数组策略
#include<stdio.h>
#include<stdlib.h>
#define MaxSize 20
int duplicate(int A[] ) {
// write code here
int arr[5];
for(int i=0;i<5;i++){
if(!arr[A[i]]){ //以A数组下标为i的元素值作为arr数组下标,
!arr[A[i]]的意思是如果arr[A[i]]是非零值则变为0,是0值则变为非0值,if(!arr[A[i]])表示arr[A[i]]为0值就运行
arr[A[i]]=1;
}else{
return A[i]; //返回第一个A数组中的重复元素
}
}
return -1; //出现不合法元素
}
int main(){
int A[]={2,3,1,0,2,5,3};
printf("重复的数值为:%d\n",duplicate(A));
return 0;
}
原地哈希策略
#include<stdio.h>
#include<stdlib.h>
#define MaxSize 20
int Delate( int a[]) {
f