1.出现
给定 n 个自然数,求没有在这 n 个自然数中出现过的最小的自然数是多少。
注意,0 也是自然数。
输入格式
第一行输入一个正整数 n。
第二行输入给定的 n 个自然数,相邻两个自然数之间用一个空格隔开。
输出格式
输出只有一行,一个自然数,表示没有在输入的 n 个自然数中出现过的最小的自然数。
数据范围
1≤n≤1000,
输入的 n 个自然数都不大于 1000。
输入样例1:
7
2 1000 7 0 1 2 5
输出样例1:
3
输入样例2:
5
1 2 3 4 5
输出样例2:
0
样例解释
样例 1 中,输入的自然数中,0、1、2 出现了,3 没有出现,所以答案是 3。
样例 2 中,输入的自然数中,0 没有出现,所以答案是 0。
本题思路:用set存储所有数,res从零开始,找到第一个不存在的自然数即可。
#include<iostream>
#include<set>
using namespace std;
set<int> m;
int n;
int main()
{
cin >> n ;
for(int i=0;i<n;i++)
{
int t;
cin >> t;
m.insert(t);
}
int res=0;
while(1)
{
if(m.find(res)==m.end())
break;
else
res++;
}
printf("%d",res);
return 0;
}