和不小于 50 的最短窗口

数组是 17 8 15 13 23 24 19。运行下面这段程序: #include <algorithm> #include <iostream> #include <map> #include <

开始练习 →

最长的不重复子串

字符串是 abcabcbb。运行下面这段程序: #include <algorithm> #include <iostream> #include <map> #include <string>

开始练习 →

和不小于目标的最短窗口

补全 min_len:右端一路扩大,一旦满足就把左端往里收,记住最短的长度。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

补全最长不重复子串

补全 longest_unique:右端每进一个字符,如果它在窗口里出现过,就把左端跳到那次出现的后面。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

窗口法和暴力法对一对

可变窗口版 min_len 已经给好。补全暴力版 brute_len(两层循环枚举所有子数组,取满足条件的最短),比较两者对 17 8 15 13 23 24 19 和目标 50 的结果。一样输出 结果一致,否则输出 结果不一致。 (本题用

开始练习 →

前缀和与差分什么关系

第 1 步:差分数组先全是 0 第 2 步:[0,2] 加 5:只改两格 第 3 步:[1,3] 加 2:只改两格 第 4 步:从左往右累加:还原出来 0 1 2 3 4 5 差分 还原 0 0 0 0 0 0 5 -5 2 -2 5 7

开始练习 →

前缀和与差分各擅长什么

前缀和和差分的分工是【0】。

开始练习 →

差分怎么做区间加

要给区间 [l, r] 每个元素都加 v,在差分数组上的做法是【0】。

开始练习 →

两次区间加之后的样子

五个位置全是 0,先给 [0,2] 每个加 5,再给 [1,3] 每个加 2。运行下面这段程序: #include <algorithm> #include <iostream> #include <map&g

开始练习 →

差分省了多少次

做 500 次区间修改、每次区间长 1000:暴力是逐个加,差分只动两格。运行下面这段程序: #include <algorithm> #include <iostream> #include <map>

开始练习 →