题目难在找到满足这个数组连续的条件
条件如下:1所有子数组的数不能重复
2每个子数组应严格递增
3所有数(范围为所有子数组的最小值到所有子数组的最大值)都必须出现
代码如下
```void solve() {
int q;
cin>>q;
unordered_map<ll,int>hash;
ll max_val=0;
ll min_val=1e9;
ll total =0;
while(q--){
int k;
cin>>k;
vector<ll>arr;
for(int i=0;i<k;i++){
ll x;
cin>>x;
arr.push_back(x);
max_val=max(x,max_val);
min_val=min(x,min_val);
hash[x]++;
total++;
}
for(int i=0;i<arr.size()-1;i++){
if(arr[i]>arr[i+1]){
cout<<"NO"<<endl;
return;
}
}
}
if(max_val-min_val+1!=total){
cout<<"NO"<<endl;
return ;
}
for(auto&[x,c]:hash){
if(c!=1){
cout<<"NO"<<endl;
return ;
}
}
cout<<"YES"<<endl;
}

京公网安备 11010502036488号