超时代码(最后两个测试点过不了):
#include<iostream>
#include<queue>
#include<malloc.h>
#include<cstdio>
#include<vector>
using namespace std;
int main()
{
int n;
cin>>n;
int a[n],b[n]={0};
for(int i=0; i<n; i++)
cin>>a[i];
for(int i=0; i<n; i++){
int flag=0;
if(b[i]==0){
for(int j=i+1; j<n; j++){
if(a[i]==a[j]){
b[i]=1;
b[j]=1;
flag=1;
}
}
}
if(flag==0&&b[i]==0){
cout<<a[i];
return 0;
}
}
int i=0;
while(b[i]==1){
i++;
}
if(i==n){
cout<<"None";
return 0;
}
cout<<a[i];
return 0;
}
利用哈希表:
#include<iostream>
#include<queue>
#include<malloc.h>
#include<cstdio>
#include<vector>
using namespace std;
int main()
{
int n;
cin>>n;
int a[100001];
int z[10001]={0};
for(int i=0; i<n; i++){
cin>>a[i];
z[a[i]]++;
}
for(int i=1; i<n; i++){
if(z[a[i]]==1){
cout<<a[i];
return 0;
}
}
cout<<"None";
return 0;
}