gpt4 book ai didi

java - 检查链表中子列表的方法的时间复杂度

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:14:32 25 4
gpt4 key购买 nike

我需要写一个方法public int subList (CharList list)获取列表并返回此列表存在的次数。

例如:

我的列表是a b c d a b g e

参数列表 a b 它将返回 2

我的列表是 b b b b

参数列表是b b 它将返回3

该方法应尽可能高效。

目前我的问题是我不知道他们说的尽可能高效是什么意思,如果我遍历列表 n 次,并且每次我找到相同的字符,我都会在两个列表中循环并返回到哪里我是 O(n^2) 吗?有没有更好的方法使 O(n) 或更小?

最佳答案

这是在一个字符串中有效的搜索字符串,复杂度为O(n)

http://en.wikipedia.org/wiki/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm

当你找到第一次出现时,你可以继续在剩余列表中寻找下一次出现,所以找到所有出现的时间仍然是 O(n)

关于java - 检查链表中子列表的方法的时间复杂度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22585127/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com