设置一个ans计算器变量,不断遍历从小到大排好序的数组a,只要当前ans小于或等于a[i],ans就可以加一。
即为了最后让Mex(b)最大化,我们要不断用掉尽可能小的数
#include <iostream>
#include <algorithm>
using namespace std;
const int N = 1e5+10;
int n, a[N], ans = 1;
int main(){
cin>>n;
for(int i=1; i<=n; i++) cin>>a[i];
sort(a+1, a+n+1);
for(int i=1; i<=n; i++)
if(ans <= a[i])
ans ++;
cout<<ans;
return 0;
}