题意:输出给定序列中没有出现的最小正整数。
思路:把正数排序去重后遍历一下就好。
代码
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
const int MAX_N = 100010;
int len = 0, n, x;
int a[MAX_N];
int main() {
// freopen("in.txt", "r", stdin);
// freopen("out.txt", "w", stdout);
scanf("%d", &n);
len = 0;
for (int i = 0; i < n; i++) {
scanf("%d", &x);
if (x > 0) {
a[len++] = x;
}
}
sort(a, a+len);
len = unique(a, a+len) - a;
int ans = 1;
for (int i = 0; i < len; i++) {
if (a[i] > ans) {break;}
ans++;
}
printf("%d\n", ans);
return 0;
}