题目:PAT1041
题解:本来我是想放到队列里,每碰到一个和队头相同的,就把队头弹出。本以为最后队头就是结果,然后发现并不适合第二种情况。
于是还是使用了标记的方法,对输入的数字进行标记。最后输出第一个标记为1的就行。
代码:
1 #include<cstdio> 2 #include<cstring> 3 using namespace std; 4 5 int num[10005],n,m[100005]; 6 bool f; 7 8 int main() 9 { 10 scanf("%d",&n); 11 f=false; 12 13 memset(num,0,sizeof(num)); 14 15 for(int i=0;i<n;i++) 16 { 17 scanf("%d",&m[i]); 18 num[m[i]]++; 19 } 20 21 22 for(int i=0;i<n;i++) 23 { 24 if(num[m[i]]==1) 25 { 26 printf("%d\n",m[i]); 27 f=true; 28 break; 29 } 30 } 31 32 if(!f) printf("None"); 33 34 return 0; 35 36 }
时间: 2024-11-06 09:47:19