Sample Input
10
5 -25 9 6 1 3 4 2 5 17
Sample Output
7
思路:
排序后找到最靠近的缺少的数,注意第一个大于1就是1.
代码
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <string>
#include <cstring>
#include <vector>
#include <map>
#include <cmath>
using namespace std;
#define endl '\n'
typedef long long ll;
vector<ll>v;
map<ll, ll>mp;
int main()
{
int n;
cin >> n;
int maxn = 0;
for (int i = 0; i < n; ++i)
{
ll x;
cin >> x;
if (x < 0) continue;
mp[x] = 1;
v.push_back(x);
}
sort(v.begin(), v.end());
if (mp[1] != 1)
{
cout << "1" << endl;
return 0;
}
for (int i = 0; i < v.size(); ++i)
{
if (mp[v[i] + 1] != 1)
{
cout << v[i] + 1 << endl;
break;
}
}
return 0;
}