We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 4664abc commit ddc29e5Copy full SHA for ddc29e5
Dynamic_Programming/2272.Substring-With-Largest-Variance/Readme.md
@@ -27,7 +27,7 @@
27
```
28
特别注意,curSum0的初始值可以是0,但是curSum1的初始值必须设置为INT_MIN.
29
30
-这样,总的时间复杂度是o(256n).
+这样,总的时间复杂度是o(676n).
31
32
#### 解法2
33
我们发现在上面的表达式里,当nums[i]不是1也不是-1的时候,curSum0和curSum1都没有更新,循环是空跑的。所以我们其实只需要关心那些nums[i]非0的位置。
@@ -36,7 +36,7 @@
36
37
注意i和j可能会有其中某一个先走到尽头。如果其中一个走到尽头,那么我们必然移动另一个指针。
38
39
-这样的时间复杂度是多少?看上去仍然是是o(256n),但事实上,我们每固定了一个最大频次的字符a,其他所有字符都被看做为最小频次的字符,且只访问了一次。所以时间复杂度优化到了o(26n).
+这样的时间复杂度是多少?看上去仍然是是o(676n),但事实上,我们每固定了一个最大频次的字符a,其他所有字符都被看做为最小频次的字符,且只访问了一次。所以时间复杂度优化到了o(26n).
40
41
补充:
42
有网友问,我感觉第二种做法不是严格的O(26 * N). https://youtu.be/P6KnO-Dw0Fo?t=2204 即使可以认为b的pos1循环遍26次就是O(N) (e.g. 小x, 小y), 但是a的pos0在内层循环也遍历了26次而不是一次. 所以两者加一起肯定大于o(N)但是小于O(26N)
0 commit comments