33,008
社区成员
发帖
与我相关
我的任务
分享
int GetDouble(const int *a,size_t length)
{
int s1 = 0,s2 = length * (length + 1)/2;
for(size_t i = 0;i != length;++i)
s1 += a[i];
return s1 - s2;
}
int do_dup(int arr[],int NUM)
{
int temp=0;
for(int i=0; i<NUM; i++)
{
if(arr[i]>=NUM)
temp=arr[i]-NUM; // 该值重复了,因为曾经加过一次了
else
temp=arr[i];
if(arr[temp]<NUM)
{
arr[temp]+=NUM; //做上标记
}
else
{
printf("有重复");
return temp;
}
}
printf("无重复");
return -1;
}
bool flag[] = new bool[n];
for(i=0;i<n;++i) flag[i] = false;
for(i=0;i<n;++i)
if(flag[A[i]] == true) break;
else flag[A[i]] = true;
if(i==n) cout<<"有重复的"<<endl;
else cout<<"无重复的"<<endl;
char flag[n] = {0};
while(A[i]){
if(flag[A[i]) return true;
flag[A[i]] = 1;
}