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
",a[i]);
28                 break;
29             }
30         }
31         if(flag!=2) printf("NOT EXIST
");
32         m--;
33     }
34     return 0;
35 }

这个题用两重循环扫描数组即可,时间复杂度是n2级别。

原文地址:https://www.cnblogs.com/huashanqingzhu/p/3464506.html