长度计算位置

来源:3-8 在滑动窗口中做记录 Longest Substring Without Repeating Characters

慕九州5549167

2020-10-10

图片描述
这个res的计算可以放第一个逻辑分支里面吗?else里面只是删一次吧。每次循环都计算res是不是不太好

写回答

1回答

liuyubobobo

2020-10-11

1

可以把 res 只放到第一个分支;


把 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) 的算法,没有复杂度上的改变。


继续加油!:)

0
1
慕九州5549167
非常感谢!
2020-10-11
共1条回复

玩转算法面试-- Leetcode真题分门别类讲解

课程配套大量BAT面试真题,高频算法题解析,强化训练

7408 学习 · 1150 问题

查看课程