思路
- 只要把每个数字的位置记录下来,然后看一下1~m这些数字中的最大的坐标和最小坐标的差值是否为m-1即可
代码
#include <iostream>
#include <cstring>
#include <algorithm>
#include <vector>
#include <string>
using namespace std;
const int N=2e5+5;
int a[N];
int main(){
int T;
cin >> T;
while(T--){
int n;
cin >> n;
for(int i=1;i<=n;i++){
int x;
cin >> x;
a[x]=i;
}
int maxn=a[1];int minn=a[1];
for(int i=1;i<=n;i++){
maxn=max(maxn,a[i]);
minn=min(minn,a[i]);
if(maxn-minn+1==i){
cout << 1;
}else{
cout << 0;
}
}
cout << "\n";
}
}