java - ArrayList 上的 'X' 序列重复了多少次

标签 java algorithm

假设我的 ArrayList<Integer> 中有以下序列

1 2个 3个 4个 1个 2个 3个 4个 5个 6

我需要知道序列 (1,2,3,4) 在列表中出现了多少次。

对于这个例子,答案是 2!

我需要 2 个解决方案,一个,数字需要按以下顺序排列 (1,2,3,4) 另一个不遵循序列 (4,1,2,3)

我正在使用 Java,提前致谢。

我尝试过的: 检查序列,如果是真的:

        AnotherList.add(Integer.valueOf(1));
        AnotherList.add(Integer.valueOf(2));
        AnotherList.add(Integer.valueOf(3));
        AnotherList.add(Integer.valueOf(4));
        if(TheList.containsAll(AnotherList))
            TheList.removeAll(AnotherList);

但是当我这样做时,它会删除我列表中的所有 1、2、3 和 4。

最佳答案

假设您不能重叠计数(因此列表中的 1,1,1,1 与 (1,1,1) 作为序列给您 1)。

在算法中,您可以自己编写代码(在我看到问题取得实质性进展之前,我不会给您伪代码):

使用循环,查看列表中的当前数字是否与序列中的第一个数字匹配。如果不匹配,则移至列表中的下一个数字。如果匹配,则移动到列表中的下一个数字,但也会按顺序递增到下一个数字。如果序列中的所有数字都匹配,则加 1 计数。到达列表末尾后返回计数。

第二部分,列出序列的所有组合(使用堆栈或递归)。和以前一样,但是与组合列表中的每个项目进行比较,直到获得完全匹配。匹配后,跳转到列表中最后一个匹配字符的末尾并重复。

关于java - ArrayList 上的 'X' 序列重复了多少次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18603653/

相关文章:

java - PaintComponent() 的问题

java - Guava的LocalCache无法使用,为什么?

algorithm - 压缩唯一排序数字的序列

java - 阻塞在未来的线程会发生什么情况,相应的任务已被丢弃?

Java 正则表达式死于堆栈溢出 : need a better version

java - jpa中求和查询怎么写?

c - 反转链表

c - 以正确的顺序读取内存需要一些帮助

algorithm - 查询给定子集是否存在于集合集合中的数据结构

php - 计算预定义日期范围之间的天数