#include <bits/stdc++.h>
#define BAR cout<<"*******\n";
#define fst first
#define snd second
#define INFILE(x) freopen(x,"r",stdin)
#define OUTFILE(x) freopen(x,"w",stdout)
#define INF 0x3f3f3f3f
#define INFL 0x3f3f3f3f3f3f3f3f
using namespace std;
using ll=long long;
using ul=unsigned long long;
using ui=unsigned int;
using db=double;
using pii=pair<int,int>;
using pil=pair<int,ll>;
using pll=pair<ll,ll>;
const int max_n=2e5+10;
int a[max_n],sym[max_n];
void solve(){
memset(a,0,sizeof(a));
memset(sym,0,sizeof(sym));
int n,max_h=0;
cin>>n;
sym[1]=n,a[0]=INF;
bool flag=true;
for(int i=1;i<=n;++i) {
cin>>a[i];
if(a[i]>n){
flag=false;
}
sym[a[i]+1]--,max_h=max(max_h,a[i]);
}
if(!flag||max_h!=n) {
cout << "NO\n";
return;
}
for(int i=1;i<=n;++i) sym[i]+=sym[i-1];
for(int i=1;i<=n;++i){
if(sym[i]!=a[i]) {
cout<<"NO\n";
break;
}
}
cout<<"YES\n";
}
int main() {
ios::sync_with_stdio(0); cin.tie(0);
int T;
cin>>T;
while(T--) solve();
return 0;
}
第二个点过不去,不知道为什么