两次区间加之后是什么样
五个位置全是 0,先给 [0,2] 每个加 5,再给 [1,3] 每个加 2。运行下面这段程序: def range_add(d, l, r, v): d[l] += v d[r +
阅读更多 →
差分怎么做区间加
要给区间 [l, r] 每个元素都加 v,在差分数组上的做法是【0】。
阅读更多 →
各自擅长什么
前缀和和差分的分工是【0】。
阅读更多 →
前缀和与差分是什么关系
前缀和与差分的关系是【0】。
阅读更多 →
⚠️ 窗口法和暴力法结果必须一样
把可变窗口版和暴力枚举所有子数组的版本都写出来,比较两者求出的最短长度。 一样输出 结果一致,否则输出 结果不一致。
阅读更多 →
求最长的不重复子串
补全 longest_unique:右端每进一个字符,如果它在窗口里出现过,就把左端跳到那次出现的后面。
阅读更多 →
求和不小于目标的最短窗口
补全 min_len:右端一路扩大,一旦满足就把左端往里收,记住最短的长度。
阅读更多 →
最长的不重复子串有多长
字符串是 abcabcbb。运行下面这段程序: def longest_unique(s): seen = {} lo = 0 best = 0 for hi in r
阅读更多 →
和不小于 50 的最短窗口有多长
数组是 [17, 8, 15, 13, 23, 24, 19]。运行下面这段程序: def min_len(a, target): lo = 0 s = 0 best = le
阅读更多 →
为什么两端都只往右走还是 O(n)
可变窗口的两个指针都只往右,总代价是 O(n),因为【0】。
阅读更多 →