和不小于 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>