//要输出的是数,而不是该数出现的次数,第一次做错就是这里弄错了
#include<stdio.h>
int main()
{
int hashTable[1001] = {0};
int num_of_int = 0;//当前记录到hashTable中的非零非重复值的个数
int count = 0;//hashTable中非零非重复值的个数
int N;
scanf("%d\n", &N);
if(N < 3)
printf("-1");
else
{
int a[N];
for(int i =0; i<N; i++)
{
scanf("%d ", &a[i]);//未排序
hashTable[a[i]]++;
if(hashTable[a[i]] == 1)
{
num_of_int++;
}
}
if(num_of_int < 3)
printf("-1");
//num_of_int >= 3时,一定存在第3小的整数,执行下面的for循环,时间复杂度从这里开始计算
for(int j = 0 ; j < 1001; j++) //遍历一遍哈希表找到第3小的数,如果有的话输出
{
if(hashTable[j] != 0)
{
count++;
if(count == 3)
printf("%d", j);//要输出的是数,而不是该数出现的次数
}
}
}
return 0;
}