⚠️ 删键和不删键,一次对比

⚠️ 删键和不删键,一次对比

把"删键"和"不删键"两个版本都跑一遍,把两个种类数拼起来输出(不删的在前)。 ——这一个字符的差别,在真实题目里就是答案对不对。

阅读更多 →
写一对 add / remove

写一对 add / remove

补全 add 和 remove:remove 减到 0 时要把键删掉。 滑完之后输出窗口里有几种字符。

阅读更多 →
删了键之后呢

删了键之后呢

同样的滑动,这次减到 0 就把键删掉。运行它: def add(cnt, ch): cnt[ch] = cnt.get(ch, 0) + 1 def remove(cnt, ch):

阅读更多 →
⚠️ 不删键会数出几种

⚠️ 不删键会数出几种

字符串 abcabcbb,窗口长 3 一路滑到末尾。这个版本减到 0 也不删键。运行它: cnt = {} s = "abcabcbb" k = 3 for i in range(

阅读更多 →
⚠️ 计数减到 0 时为什么要删掉这个键

⚠️ 计数减到 0 时为什么要删掉这个键

用字典记窗口里各元素的次数,某个元素减到 0 时应该把键删掉,因为【0】。

阅读更多 →
窗口移动时状态要怎么维护

窗口移动时状态要怎么维护

窗口每移动一次,附带的状态(比如各元素出现次数)要【0】。

阅读更多 →
⚠️ 差分和暴力结果必须一样

⚠️ 差分和暴力结果必须一样

把差分版和逐个加的暴力版都写出来,做同样两次区间加,比较两者的结果。 一样输出 结果一致,否则输出 结果不一致。

阅读更多 →
写一个还原

写一个还原

补全 restore:对差分数组求前缀和,还原出每个位置的真实值。

阅读更多 →
写一个区间加

写一个区间加

补全 range_add:在差分数组上给 [l, r] 每个元素加 v。 做两次区间加之后把还原结果拼起来输出。

阅读更多 →
差分省了多少

差分省了多少

做 500 次区间修改、每次区间长 1000:暴力是逐个加,差分只动两格。运行下面这段程序: def brute(m, L): return m * L def diff_ops(m):

阅读更多 →