长度计算位置
来源:3-8 在滑动窗口中做记录 Longest Substring Without Repeating Characters
慕九州5549167
2020-10-10
这个res的计算可以放第一个逻辑分支里面吗?else里面只是删一次吧。每次循环都计算res是不是不太好
写回答
1回答
-
1
1
可以把 res 只放到第一个分支;
2
把 res 放到第一个分支并不会有复杂度级别的变化,整个算法还是 O(n) 的。我的逻辑思想是:在每轮循环中,首先根据问题需求调整滑动窗口,其次看当前滑窗长度是否更大。两步各司其职。
当然,你可以根据你喜欢的方式建立逻辑。只要是正确的,就 ok。
3
在这个课程的官方代码,我也给出了这个问题的若干其他实现,感兴趣可以参考:https://git.imooc.com/coding-82/coding-82/src/master/03-Using-Array/Course%20Code%20%28C++%29/08-Longest-Substring-Without-Repeating-Characters
但其实,他们都是 O(n) 的算法,没有复杂度上的改变。
继续加油!:)
012020-10-11
相似问题