看见世界
算法:一次只钻一个技巧
不是「排序算法」「动态规划」,而是「二分的边界」「DP 的状态定义」「回溯去重是同层还是同枝」——一份只钻一处,钻到你说得出为什么。
怎么用
这一批是学习型的:它会引导你,不会追到你说不出话为止。卡住时它先问你卡在哪一层(没听过 / 知道但不明白为什么 / 明白但写不对),再决定给什么;同一个点引导两次还不通才直接讲,讲完要你用自己的话复述一遍。
怎么开始
- 挑一份,点开它,把提示词复制走。
- 新开一个空对话贴进去,什么都别说,等它问第一个问题。
- 手推优先于写代码 —— 它会打断你。在长度 2 的数组上把每一步推一遍,比写十遍模板管用。
中途随时能喊的四个口令
跳过立刻进下一幕换个说法这一处换个角度再讲一遍直说吧讲完整答案,然后要我复述复盘立刻跳到收尾,输出复盘卡片
三条坑
- 末尾的底牌别自己先读 —— 那一栏「常见的想错」写的就是每一问的答案。
- 别急着写代码。算法这一类,写代码是最容易掩盖「其实没想清楚」的动作。
- 它开始夸你的时候,提醒它看「不许夸我」那条。引导不等于哄。
想不出解法先做「状态定义」;老是错边界做「二分」和「前缀和」;认不出题型做「单调栈」和「滑动窗口」。「复杂度」那份是好几份的地基,早做早受益。
数据结构
单调栈:什么形状的题会塌成它
模板八行,难的是看见一道新题认出它是这个形状。
求第 k 大,为什么用小顶堆
求最大的 100 个,用小顶堆 —— 方向是反的,为什么?
并查集:两个优化各省了什么
十行代码,但去掉按秩合并会退化成什么,你说得出吗?
前缀和能用的前提是可逆
区间和能用它,区间最大值不能 —— 那条界线在哪?