栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

java中双指针算法

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java中双指针算法

题目
给定一个长度为 n 的整数序列 a1,a2,…,an 以及一个长度为 m 的整数序列 b1,b2,…,bm。
请你判断 a 序列是否为 b 序列的子序列。
子序列指序列的一部分项按原有次序排列而得的序列,例如序列 {a1,a3,a5} 是序列 {a1,a2,a3,a4,a5} 的一个子序列。

输入
两个数组的长度
3 5
第一个数组
1 3 5
第二个数组
1 2 3 4 5
输出
Yes
public class 双指针_判断子序列 {
    public static void main(String[] args) {
        //接收初始数据
        Scanner in = new Scanner(System.in);
        int n = in.nextInt(), m = in.nextInt();
        int[] a = new int[n], b = new int[m];
        for (int i = 0; ia[i] = in.nextInt();}
        for (int i = 0; ib[i] = in.nextInt();}

        //创建双指针从a和b的头部开始,如果a[i]和b[j]相对,那么i往后移动
        //需要注意的是j不管能不能匹配都需要往后移动,因为是要顺位查找
        int i = 0, j = 0;
        while (i < n && j < m) {
            if (a[i]==b[j]) {i++;}
            j++;
        }

        //判断,如果a的每一个元素都能在b中找到,那么i应该等于n,反之说明找不全或匹配不到
        if (i==n) {System.out.println("Yes");}
        else {System.out.println("No");}
    }
}

图例:

今天的题也好简单!芜湖~继续打游戏!不过双指针到此为止了呜呜呜

声明:算法思路来源为y总,详细请见https://www.acwing.com/
本文仅用作学习记录和交流

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1034610.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号