#include <iostream>
using namespace std;
const int N=1e5+10;
int n,m;
int a[N],b[N];
string res = "No";
int main(){
scanf("%d%d",&n,&m);
for(int i=0;i<n;i++) scanf("%d",&a[i]);
for(int j=0;j<m;j++) scanf("%d",&b[j]);
// for(int i=0,j=0;i<n,j<m;i++,j++){
// while(a[i]!=b[j] && j<m) j++;
// if(b[j]==a[i] && i==n-1 && j<m) res = "Yes";
// }
// cout<<res;
int i=0,j=0;
while(i<n && j<m){
if(a[i]==b[j]) i++;//i找到匹配就往右移动,以子序列为主
j++;//长序列,无论有没有匹配都要往右移动
}
if(i==n) puts("Yes");
else puts("No");
}
acwing 2816.判断子序列
最新推荐文章于 2024-05-30 16:17:47 发布