r值如何变化?

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

慕前端0114128

2020-09-30

在这个滑动窗口标记的code里面,一旦r+1标记数组是1那么r的值就不再变化了,能解答下r值是怎么变化的吗?

写回答

1回答

liuyubobobo

2020-09-30

r 将暂时固定住。如果 r 已经到头了,r 将不会再变化。否则,由于只会执行 freq[s[l++]] --;,直到某个时刻,freq[s[r+1]] == 0 了,r 就可以继续右移了。


我强烈建议你是用一个简单的测试用例,使用这个程序进行单步跟踪,去看在每次循环中,l 和 r 都是怎样变化的,为什么会产生这样的变化。这是学习算法,乃至是学习编程最好的方式,实际去看程序是怎样运行的,和你脑子里想象的运行方式是否一致。如果不一致,自己哪里想错了。只有通过多次这样的训练,才能慢慢更加深刻地理解程序的运行方式。进步就在这个过程中哦。


加油!:)

0
0

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

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

7408 学习 · 1150 问题

查看课程