最近不是dp题了,感觉好了很多,今天的题也是思维暴力,但是想不太到
推理过程:
- 这个题看题解的,自己不会做,因为不太明白怎么做
- 这个题首先可以想到规律,如果是100 这种的三位数,如果要全部存在那么就是3 * 999 ,那肯定是超出1000位了,所以从这里入手
- 经过测试,这个题的话最多到200就可以测出,200 * 3 多,数据水一些,不过也还可以,保险起见,直接写1000当然也可以
- 所以我们排着遍历情况就可以
代码:
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <map>
using namespace std;
const int N = 10010;
map <int, int> mp;
int a[N];
int main(){
int n;
scanf("%d",&n);
for (int i = 1; i <= n; i++){
scanf("%d",&a[i]);
mp[a[i]] = 1;
}
for (int i = 1; i <= n -1; i ++){
int t = a[i] * 10 + a[i + 1];
mp[t] = 1;
}
for (int i = 1; i <= n - 2; i ++){
int t = a[i] * 100 + a[i + 1] * 10 + a[i + 2];
mp[t] = 1;
}
for (int i = 0;i <= 200; i ++){
if (!mp[i]){
printf("%d\n",i);
return 0;
}
}
}