首页课程小红花墙

算法进阶 · 小纸条

选一章打印。双面打印(按长边翻页)后沿虚线剪开,每张卡片正面题目、背面答案。

第 1 章30第 2 章30第 3 章30第 4 章30第 5 章30第 6 章30第 7 章30第 8 章30第 9 章30第 10 章30第 11 章30第 12 章30第 13 章30第 14 章30第 15 章30第 16 章30第 17 章30第 18 章30第 19 章30第 20 章30第 21 章30第 22 章30第 23 章30第 24 章30第 25 章10
题目+答案
第 1 页 · 正面(题目)
1前缀和回顾

a=1 2 3 4,s[3] 是多少?a[2..4] 是多少?

2前缀和的难题

修改 a[2] 后,前缀和数组需要更新哪些位置?

3lowbit 直觉

lowbit(8)?lowbit(20)?

4lowbit 计算

手算 6 & (-6)(按 4 位补码)。

5树状数组结构

c[8] 管 a 的哪一段?c[7] 呢?

6单点修改

n=8 时,add(3,…) 会依次更新哪些下标?

7前缀求和

sum(7) 会累加哪些 c?

8单点改区间查

用 sum 表示 a[3..7] 的和。

9区间改单点查

对 [2,4] 加 5,需要做哪两次 add?

10逆序对

序列 3 1 2 有几个逆序对?

第 2 页 · 正面(题目)
11线段树·登场

区间最大值能像树状数组那样用“前缀差”求出来吗?

12线段树·结构

[1,4] 的根往下分成哪两个子区间?

13线段树·存储

节点 5 的两个孩子编号是多少?

14线段树·建树

一棵管理 8 个数的线段树,根节点管的是哪几个数?

15线段树·上传

若线段树维护区间最小值,pushup 该怎么写?

16线段树·单点改

改一个叶子,一共要更新几个节点?

17线段树·查询思路

若当前节点区间与查询区间完全无交,该怎么办?

18线段树·区间和

为什么"完全落在区间内"时可以直接返回,不用再往下递归?

19线段树·区间最值

求区间最大值时,无交节点应返回什么?

20线段树·懒标记直觉

打了懒标记的节点,它的孩子此刻是最新的吗?

第 3 页 · 正面(题目)
21线段树·下放

下放后父节点的懒标记应变成什么?

22线段树·区间改

递归进入孩子之前必须先做什么?

23单调栈·直觉

要找“右边第一个更大”,栈里应保持递增还是递减?

24下一个更大

序列 2 1 3,元素 1 的下一个更大(值)是谁?

25单调栈·复杂度

n 个元素,单调栈总的入栈加出栈操作数量级是多少?

26单调栈·应用

柱状图求最大矩形,对每根柱子要找它左右第一个“更矮”还是“更高”?

27单调队列·直觉

求窗口最大值,队列里下标对应的值应保持怎样的单调性?

28滑动窗口最值

判断队首过期的条件是什么?

29单调队列·实现

队列里存下标还是存值更方便判断过期?

30单调队列·应用

求窗口最小值时,队尾应弹出哪些元素?

op599 课程