1041 Be Unique (20 分)
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,10?4??]. 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 (≤10?5??) 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
题目的意思就是输出第一个不重复元素,这个其实很简单,我的第一版代码完全可以实现这个要求,但是最下面的两个测试点超时了,所以不能直接用两个for循环来对重复元素进行计数,后来看了看别人的博客,其实就是在我原来的基础上改了一下,变成了一个简单的hash表,题目输入的为key,重复次数为value,两个vector就能实现,代码也很简单,就不赘述了。
#include<iostream>
#include<vector>
using namespace std;
int main()
{int n;cin >> n;vector<int> arr1,arr2(100000);for (int i = 0; i < 100000; i++){arr2[i] = 0;}for (int i = 0; i < n; i++){int temp;cin >> temp;arr1.push_back(temp);arr2[temp]++;}int flag = 0;for (int i = 0; i < arr1.size(); i++){if (arr2[arr1[i]] == 1){cout << arr1[i];flag++;break;}}if (flag == 0){cout << "None";}system("pause");
}