AcWing 2816. $\Huge\color{red}{判断子序列}$
原题链接
简单
作者:
种花家的老六
,
2022-11-22 12:34:42
,
所有人可见
,
阅读 214
<-求赞
思路(双指针)
因为序列是有序的,所以我们从头往后扫描b数组,只要有一个a数组中的元素匹配不上,就不匹配。
否则是匹配的。
c++代码:
#include <iostream>
#include <cstring>
using namespace std;
const int N = 100010;
int n, m;
int a[N], b[N];
int main()
{
scanf("%d%d", &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) puts("Yes");
else puts("No");
return 0;
}