在一个长度为n的数组里,所有数字范围都在0~n-1之间,数组里某些数字是重复的,请随意输出一个重复的数字。。。
#include
#include
using namespace std;
void findOneDuplicateEle(int arr[],int length)
{
if(NULL == arr ||length <= 0){
cout<<“input error”<<endl;
return ;
}
for(int i=0; i<length; i++)
{
if(arr[i]<0 || arr[i]>length-1){
cout<<“input error”<<endl;
return ;
}
while(arr[i] != i)
{
if(arr[i] == arr[arr[i]])
{
cout<<“this is duplicate element:”<<arr[i]<<endl;
return ;
}
swap(arr[i],arr[arr[i]]);
}
}
}
int main()
{
int n;
int arr[2005] = {0};
cin>>n;
for(int i=0;i<n;i++)
{
cin>>arr[i];
}
findOneDuplicateEle(arr,n);
return 0;
}