定义了两个hash数组,一个用来统计每个数字出现的个数,一个用来统计每个数字第一次出现的时间,感觉自己写的稍微有点啰嗦。
#include<cstdio>
const int maxn=100010;
int hash[maxn]={0};
int time[maxn]={0};
int main()
{
int n;
scanf("%d",&n);
int lottery;
for(int i=0;i<n;i++)
{
scanf("%d",&lottery);
if(hash[lottery]==0)
{
hash[lottery]++;
time[lottery]=i;
}else if(hash[lottery]!=0)
{
hash[lottery]++;
}
}
int mintime=n;
int k=0;
int num=0;
for(int i=0;i<maxn;i++)
{
if(hash[i]==1)
{
num++;
if(time[i]<mintime)
{
mintime=time[i];
k=i;
}
}
}
if(k!=0) printf("%d",k);
if(num==0) printf("None");
return 0;
}