题目描述
判断子序列
在第二个数列中判断是否包含第一个数列
C++ 代码
#include<iostream>
using namespace std;
const int N=100010;
int a[N],b[N];
int n,m;
int main()
{
cin>>n>>m;
for(int i=0;i<n;i++)scanf("%d",&a[i]);
for(int i=0;i<m;i++)scanf("%d",&b[i]);
int i=0,j=0;
while(i<n&j<m)
{
//如果元素相同,则遍历第一个数列,但不论是否相同,都要遍历第二个数组
if(a[i]==b[j])i++;
j++;
}
//当遍历完第一个数列,则说明存在
if(i==n)cout<<"Yes";
//不然则是第二个遍历完了第一个都没有遍历完 ,就是不存在
else cout<<"No";
return 0;
}