小技巧-寻找区间未出现的最小非负整数

关于mex:区间的mex被定义为区间中未出现的最小的非负整数

,例如:

  • [2,2,1]的mex是0,0不在这个区间中。
  • [3,1,0,1]的mex是2,因为0,1在这个区间中2不在
  • [0,3,1,2]的mex是4,因为0,1,2,3在这个区间中而4不在

输入:

一串非负整数,表示数列

代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<bits/stdc++.h>
const int N= 2e5+10;
using namespace std;
int a[N];
int main(){
int n;
cin >> n;
for(int i=0;i<n;i++){
cin >> a[i];
cnt[a[i]]++;
}


while(cnt[num]) num++;

cout<< num <<'\n';
return 0;
}

小技巧-寻找区间未出现的最小非负整数
http://example.com/2024/06/07/小技巧-/
作者
wangzj
发布于
2024年6月7日
许可协议