题目描述
判断子序列
核心部分:while loop
如果a序列是b序列的子序列,则退出循环时i为n;(n<m)
如果a序列不是b的子序列,则推出循环时i<n,且j为m.
时间复杂度
o(n)
C++ 代码
#include<iostream>
using namespace std;
const int N=1e5+10;
int a[N],b[N];
int n,m;
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]);
int i=0,j=0;
while (i<n && j<m)
{
if (a[i]==b[j]) i++;
j++;
}
if (i==n) printf("Yes");
else printf("No");
return 0;
}