算法
(排序) $O(n\log n)$
先对数组排序,令 ans = 1
,然后遍历数组,如果当前元素大于等于 ans
,则对 ans
加一。本题的答案就是 ans
的值。
C++ 代码
#include <bits/stdc++.h>
#define rep(i, n) for (int i = 0; i < (n); ++i)
using std::cin;
using std::cout;
using std::vector;
int main() {
int n;
cin >> n;
vector<int> a(n);
rep(i, n) cin >> a[i];
sort(a.begin(), a.end());
int ans = 1;
rep(i, n) if (a[i] >= ans) ++ans;
cout << ans << '\n';
return 0;
}