Being unique is so important to people on Mars that even their lottery is designed in a unique way. The rule of winning is simple: one bets on a number chosen from [1,104]. The first one who bets on a unique number wins. For example, if there are 7 people betting on { 5 31 5 88 67 88 17 }, then the second one who bets on 31 wins.

Input Specification:

Each input file contains one test case. Each case contains a line which begins with a positive integer N (≤105) and then followed by N bets. The numbers are separated by a space.

Output Specification:

For each test case, print the winning number in a line. If there is no winner, print ​​None​​ instead.

Sample Input 1:

7 5 31 5 88 67 88 17

Sample Output 1:

31

Sample Input 2:

5 888 666 666 888 888

Sample Output 2:

None

参考代码:

#include<cstdio>
#include<cstring>
const int maxn = 100010;
int hashTable[maxn],temp[maxn];
//hashTbale建立数字到数字出现数量的映射,temp按顺序存储输入的数字

int main(int argc, char const *argv[])
{
memset(hashTable, 0, sizeof(hashTable));//将所有数字出现的次数置为0

int n;
scanf("%d", &n);
int count = 0;
for (int i = 0; i < n; ++i)
{
int num;
scanf("%d", &num);
hashTable[num]++; //出现一次该数的出现次数加1
temp[count++] = num; //按顺序存储出现的数字
}

bool isPrintf = false; //记录是否已经输出了数字
for (int i = 0; i < n; ++i) //按顺序查询第一独立出现的数字
{
if(hashTable[temp[i]] == 1){
printf("%d\n", temp[i]);
isPrintf = true;
break; //如果已经输出了 就结束
}
}

if(isPrintf == false){
printf("None\n");
}
return 0;
}

参考代码2:

#include<cstdio>
const int maxn = 100010;
int hashTable[maxn] = {0},A[maxn];//第一个位散列数组,第二个位输入数字
int main(int argc, char const *argv[])
{
int n;
scanf("%d", &n);
for (int i = 0; i < n; ++i)
{
scanf("%d", &A[i]);//当前输入的数位A[i]
hashTable[A[i]]++; //数字A[i]出现的次数加1
}

int ans = -1;
for (int i = 0; i < n; ++i)
{
if(hashTable[A[i]] == 1){//如果A[i]只出现一次
ans = A[i]; //答案就是A[i],退出循环
break;
}
}

if(ans == -1) printf("None\n");//找不到只出现一次的数,输出None
else printf("%d\n", ans);
return 0;
}