刷题的动力通常来自下一场面试。我听完沉默了,因为太真实了。我盯着状态转移方程发呆,最后发现初始化条件写错了。从此我多了一条团队规约

复习的时候翻到了两年前的错题,我发现我还是不会。我把手上的资料翻出来又读了两遍。我写了个暴力解法先骗过测试用例,再去想怎么优化。同事说这波操作可以写进新人培训教材

面试官问能不能优化空间复杂度,我说可以,然后当场忘了怎么优化。我忽然觉得,这可能就是这一行的常态。我盯着状态转移方程发呆,最后发现初始化条件写错了。真香定律准时生效

我把这题的思路讲给了同事,他听完说不如直接查表。我在心里把涉及的所有环节都过了一遍。我把时间复杂度重新算了一遍,果然是平方级的。我沉默了,但心里是服的

这个数据结构选错了,后来的每一行都在补救。我叹了口气,然后打开了编辑器。我在心里把这道题重新推了一遍,推完发现忘了刚记住的。世界瞬间清净了

这题我写了三种解法,性能最好的是最丑的那个。我在心里默念了一遍快排的分区过程,然后写错了边界。好在最后有惊无险

刷题的第 n 天,我依然会在边界上栽跟头。我想了想自己这些年,好像确实如此。我把这个链表操作加了哨兵节点,头结点的特殊处理没了。第二天这个方案就变成了团队标准做法

我把它想成了一道数学题,然后就卡住了。我打开记录从头到尾扫了一遍。我在心里把这道题的时间限制算了一遍,决定放弃一种写法。我把这条经验写进了团队 wiki

这道题我看了十分钟,然后决定去看题解。我把整条链路在心里复盘了一遍。我在心里默念了一遍快排的分区过程,然后写错了边界。复盘会上我们把它列成了案例

面试官让我手写 LRU,我手写了三遍,每一遍都漏一个边界条件。我默默打开了编辑器,准备一步步验证。我把这个贪心的正确性在心里证了一遍,没完全证出来