OpenJudge计算概论-第二个重复出现的数
/*======================================================================== 第二个重复出现的数 总时间限制: 1000ms 内存限制: 65536kB 描述 给定一个正整数数组(元素的值都大于零),输出数组中第二个重复出现的正整数,如果没有,则输出字符串"NOT EXIST"。 输入 第一行为整数m,表示有m组数据。 其后每组数据分两行: 第一行为正整数n(3 < n < 500),表示数组的长度; 第二行是n个正整数,正整数间用空格分开。 输出 有m行输出,每行输出对于数组中第二个重复出现的正整数,如果没有,则输出字符串"NOT EXIST"。 样例输入 5 10 1 3 5 7 9 7 8 5 2 6 10 1 3 5 5 7 9 7 8 2 6 10 1 3 5 5 7 9 4 8 2 6 10 1 3 5 7 2 9 9 8 7 5 10 1 3 5 2 7 9 9 8 7 5 样例输出 7 7 NOT EXIST 7 7 ==========================================================================*/
1 #include<stdio.h> 2 int main() 3 { 4 int m,n,a[505],i,j,flag; 5 freopen("3.in","r",stdin); 6 scanf("%d",&m); 7 while(m>0) 8 { 9 scanf("%d",&n); 10 for(i=0;i<n;i++) 11 { 12 scanf("%d",&a[i]); 13 } 14 flag=0; 15 for(i=0;i<n-1;i++) 16 { 17 for(j=i+1;j<n;j++) 18 { 19 if(a[j]==a[i]) 20 { 21 flag++; 22 break; 23 } 24 } 25 if(flag==2) 26 { 27 printf("%d\n",a[i]); 28 break; 29 } 30 } 31 if(flag!=2) printf("NOT EXIST\n"); 32 m--; 33 } 34 return 0; 35 }
这个题用两重循环扫描数组即可,时间复杂度是n2级别。