题解 | #最长不含重复字符的子字符串#
最长不含重复字符的子字符串
http://www.nowcoder.com/practice/48d2ff79b8564c40a50fa79f9d5fa9c7
思路
与 子数组最大和(二)的双指针思路类似:
- 两个指针的移动根据分类的情况而定
- 最大值的更新都是根据
是否两指针的index之大于max
而定
需要注意的细节
-
尾指针q在两种情况下都要移动,因为q是相当于顺序遍历的的临时变量i一样,只是在不同的情况下更新的早晚有不同所以才不用i而是另设尾指针q。
-
头指针p在进行寻找与p指针相同的字符时分
找到而退出
和未找到
2种情况,这时p指针都需要向后移动一位,这里容易忘记 -
会存在
q一直右移
而因为没有进入其他的分类情况下时导致Max没更新
的情况,在算法最终部分需要进行强制结算Max