input:
3 5
1 3 5
1 2 3 4 5
output:
Yes
就是看看上面的是不是能够一一的对应到下面的数组
#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 ++)
cin >> a[i];
for(int i = 0; i < m; i ++)
cin >> 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;
}
note:我一开始的想法是从短的那个开始找,每次定一个短的那个然后去遍历下面长的
上面代码想的是我遍历长的数组,每次去看看跟短的这个一样不一样,一样就都往后走一个,不一样就光下面的往后走一个,这样在最后判断的时候会方便一些