问题 C: 唯一
时间限制: 1.000 Sec 内存限制: 128 MB
题目描述
学校派晨晨到地砖供应商的仓库调查地砖样式情况,仓库管理员告诉她,仓库里的地砖有1000种样式,编号从1到1000。仓库里本来有1000000块地砖,卖出了一些,还剩N块。
这些地砖排放成一行,晨晨从前向后依次查看。晨晨一直对“独一无二”很感兴趣,如果她见到一块地砖,而这块地砖的样式在仓库里是唯一的,就会马上取了这块地砖跑回学校。
现在知道这N块地砖从前向后的样式编号,问晨晨取回的地砖是什么样式的?
如果没有取到,输出0。
输入
第1行是一个整数N。
第2行:N个整数,依次表示从前向后的地砖样式编号。
输出
一行一个整数,代表晨晨取回地砖的样式编号。
样例输入
6 2 3 1 3 2 13
样例输出
1
这个题暴力会超时,用空间代替时间
#include<bits/stdc++.h>
using namespace std;
int a[1000009],b[1000009]={0};
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
b[a[i]]++;
} for(int i=1;i<=n;i++){
if(b[a[i]]==1) {
cout<<a[i]<<endl;
return 0;
}
}cout<<"0"<<endl;
return 0;
}