⚠️ 窗口法和暴力法结果必须一样
把可变窗口版和暴力枚举所有子数组的版本都写出来,比较两者求出的最短长度。 一样输出 结果一致,否则输出 结果不一致。
前缀和与差分是什么关系
前缀和与差分的关系是【0】。
各自擅长什么
前缀和和差分的分工是【0】。
差分怎么做区间加
要给区间 [l, r] 每个元素都加 v,在差分数组上的做法是【0】。
两次区间加之后是什么样
五个位置全是 0,先给 [0,2] 每个加 5,再给 [1,3] 每个加 2。运行下面这段程序: def range_add(d, l, r, v): d[l] += v d[r + 1] -= v def restore
差分省了多少
做 500 次区间修改、每次区间长 1000:暴力是逐个加,差分只动两格。运行下面这段程序: def brute(m, L): return m * L def diff_ops(m): return m * 2 pri
写一个区间加
补全 range_add:在差分数组上给 [l, r] 每个元素加 v。 做两次区间加之后把还原结果拼起来输出。
写一个还原
补全 restore:对差分数组求前缀和,还原出每个位置的真实值。
⚠️ 差分和暴力结果必须一样
把差分版和逐个加的暴力版都写出来,做同样两次区间加,比较两者的结果。 一样输出 结果一致,否则输出 结果不一致。
窗口移动时状态要怎么维护
窗口每移动一次,附带的状态(比如各元素出现次数)要【0】。