当前位置: 首页 > news >正文

2816. 判断子序列(双指针)

给定一个长度为 nn 的整数序列 a1,a2,…,ana1,a2,…,an 以及一个长度为 mm 的整数序列 b1,b2,…,bmb1,b2,…,bm。

请你判断 aa 序列是否为 bb 序列的子序列。

子序列指序列的一部分项按原有次序排列而得的序列,例如序列 {a1,a3,a5}{a1,a3,a5} 是序列 {a1,a2,a3,a4,a5}{a1,a2,a3,a4,a5} 的一个子序列。

输入格式

第一行包含两个整数 n,mn,m。

第二行包含 nn 个整数,表示 a1,a2,…,ana1,a2,…,an。

第三行包含 mm 个整数,表示 b1,b2,…,bmb1,b2,…,bm。

输出格式

如果 aa 序列是 bb 序列的子序列,输出一行 Yes

否则,输出 No

数据范围

1≤n≤m≤1051≤n≤m≤105,
−109≤ai,bi≤109−109≤ai,bi≤109

输入样例:

3 5
1 3 5
1 2 3 4 5

输出样例:

Yes

#include<iostream>
#include<algorithm>
using namespace std;

int n, m;
const int N = 1e5 + 10;
int a[N], b[N];

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 j = 0;
    for (int i = 0; i < m; i++)
    {
        if (i < n && a[j] == b[i])j++;
    }
    if (j == n)cout << "Yes" << endl;
    else cout << "No" << endl;
    return 0;
}

相关文章:

  • 技术宅小伙:关于前端的那些你不知道的事
  • [Python] 常用运算符
  • ES6新语法
  • vue3数据懒加载 无限滚动加载分页列表
  • 如何选择理想的三相浪涌保护器?
  • Dockerfile自定义镜像
  • 中国密封空气阻尼器行业发展趋势及需求前景预测报告2023-2029年
  • Javaweb | 初识、servlet应用
  • Vue2和Vue3响应式的实现原理
  • 20230331英语学习
  • MobTech 秒验|本机号码一键登录
  • MVCC及其在leveldb中的实现
  • tsconfig.json参数详解
  • 「 Redis 」缓存淘汰策略及内存淘汰策略
  • 多线程 (进阶) 死锁的成因和解决方案
  • Linux基础知识——基础命令/基础指令
  • c++开发环境安装
  • pycharm连接虚拟机中的spark
  • 解决服务器系统磁盘满了的问题
  • 玩转易知微社区,就差你了
  • 电加热油锅炉工作原理_电加热导油
  • 大型电蒸汽锅炉_工业电阻炉
  • 燃气蒸汽锅炉的分类_大连生物质蒸汽锅炉
  • 天津市维修锅炉_锅炉汽化处理方法
  • 蒸汽汽锅炉厂家_延安锅炉厂家
  • 山西热水锅炉厂家_酒店热水 锅炉
  • 蒸汽锅炉生产厂家_燃油蒸汽发生器
  • 燃煤锅炉烧热水_张家口 淘汰取缔燃煤锅炉
  • 生物质锅炉_炉
  • 锅炉天然气_天燃气热风炉