1041. Be Unique (20)
题目大意
题目大意:给n个数字,按照读入顺序,哪个数字是第一个在所有数字中只出现一次的数字。如果所有数字出现都超过了一次,则输出。
基本思路
建立一个数组,存储每个数字出现的次数,然后遍历一遍输入的顺序看是否有出现次数为1的数字
代码
#include <bits/stdc++.h>
using namespace std;
const int maxn=100001;
int n;
int a[maxn];
int hashtable[maxn]={0};
int main(){
cin>>n;
//枚举i从1到n,依次向数组a存入第1到第n个元素,并实时统计各个元素的出现次数
for(int i=1;i<=n;i++){
cin>>a[i];
hashtable[a[i]]++;
}
//找到第一个只出现一次的元素,存入ans
int ans=-1;
for(int i=1;i<=n;i++){
if(hashtable[a[i]]==1){
ans=a[i];
break;
}
}
//根据不同的ans值做出相应的输出
if(ans==-1){
printf("None\n");
}else{
printf("%d\n",ans);
}
}