gpt4 book ai didi

algorithm - 分词时间复杂度

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:53:16 25 4
gpt4 key购买 nike

我正在研究自己(这不是作业),想弄清楚为什么人们说这个算法的时间复杂度是 O(n^2)。对于字符串 abcd 示例,这将执行以下计算

i=0, a
i=1, ab, a
i=2, abc, bc, c
i=3, abcd, bcd, cd, d

并且总操作数为 10,比 n^2 少很多(16,其中 n=4)有人可以解释一下为什么它的复杂度是 o(n^2) 吗?

    public boolean wordBreak(String s, List<String> wordDict) {
boolean[] dp = new boolean[s.length() + 1];
dp[0] = true;
for (int i = 1; i <= s.length(); i++) {
for (int j = 0; j < i; j++) {
if (dp[j] && wordDict.contains(s.substring(j, i))) {
dp[i] = true;
}
}
}
return dp[dp.length - 1];
}

最佳答案

即使内循环循环少于 N 次,假设它是 n/2。因此,循环总数将为 N X N/2,即 (NXN)/2,因此对于时间复杂度,我们删除常量,因此其 O(N^2)。

关于algorithm - 分词时间复杂度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44838703/

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