// A1041 Be Unique (20分).cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
/*
考察:嵌套数组+hash
题意
1、给N个数字,找出第一个没有重合的数字
解题:
1、开个存储元素的数组,输入每个元素都存起来,然后以这个元素做下标,累计次数
2、遍历n个元素吧,如果遍历hash呢,
learn && wrong;
1、找出最小的那个unique可以,如何找第一个呢?统计次数是没错了,但是第一个如何找呢
2、另外开个数组吗,对,另外一个数组,把元素输入进去,然后遍历这个数组,并且查看hash,看几次
learn && wrong:
1、哈希只用10的4次方,而元素可能有10的5次方这么多个
2、按读入数字的顺序来判断hash这个手法要会!也就是开个新的数组,按这个数组的元素来判断hash
3、答案是新设了一个ans为-1,通过更新ans的值来判断输出
*/
#include <iostream>
#include<cstring>
using namespace std;
int hash1[10010] = { 0 };
int yuansu[100010];
int main()
{
int n;
cin >> n;
int zhi;
for (int i = 0;i < n;++i) {
cin >> zhi;
yuansu[i] = zhi; //保存输入来的值
++hash1[yuansu[i]]; //用hash1统计次数
}
int i;
for ( i = 0;i < n;++i) {
if (hash1[yuansu[i]] == 1) {
cout << yuansu[i] << endl;
break;
}
}
if (i == n) cout << "None" << endl;
return 0;
}
网友评论