参考这篇博文: https://blog.csdn.net/guoqingshuang/article/details/79786145
题目说在数据在int范围内,但网上也有说测试的最大值是100000,这说明PAT测试点还是不健壮啊,,,,个人认为这篇博文的方法符合题目要求。
#include <stdio.h>
#include <map>
using namespace std;
map<int, int> dict;
int main()
{
int n, k, max =0;
scanf("%d", &n);
for(int i = 0; i < n; i++)
{
scanf("%d", &k);
if(k > max)
max = k;
dict[k] = 1;
}
for(int i = 1; i <= max+1; i++)
{
if(dict.count(i) == 0)
{
printf("%d\n", i);
break;
}
}
return 0;
}