面试官问能不能优化空间复杂度,我说可以,然后当场忘了怎么优化。我叹了口气,然后打开了编辑器。我打开了这题的耗时排名,发现我的解法排在后四成。这条经验值直接拉满

算法题的难点往往在边界,而不在思路。我默默记下了这句话。我打开了这题的相似题,发现我上周才做过

动态规划三步走:定义状态、写转移方程、看题解。我把题解看了三遍才看懂第五行,然后默默收藏了。感动,然后我学到了新的一课

这题我写了三种解法,性能最好的是最丑的那个。我把相关的记录都翻了出来做对照。我打开了这题的评论区,发现了三种完全不同的解法。我沉默了,但心里是服的

链表反转我背了五遍,面试的时候还是写错了一个指针。这套流程走下来,我从头到尾又确认了一遍。我在心里把这道题的输入规模算了一下,决定换个思路。真香定律准时生效

这道题我在半年前做过,现在完全没印象。我愣了两秒,然后继续敲代码。我把二分的左右边界又推了一遍,这次终于没写死循环。这条经验值直接拉满

刷了两百道题之后发现:模板我都知道,但题目它不按模板出。我抬起头看了看周围,大家都一样。我打开复杂度分析,发现自己写的是 O(n²) 还以为很优雅。我把它写进了组内的避坑文档第一章

时间复杂度 O(n) 的解法我想了三天,题解用了五行。我把手上的资料翻出来又读了两遍。我把这个动态规划的状态定义重新想了一遍,终于顺了。复盘会上我们把它列成了案例

面试官让我手写 LRU,我手写了三遍,每一遍都漏一个边界条件。这套流程走下来,我从头到尾又确认了一遍。我把这个链表操作加了哨兵节点,头结点的特殊处理没了。幸好之前留了备份

动态规划三步走:定义状态、写转移方程、看题解。我在心里点了点头。我把题解看了三遍才看懂第五行,然后默默收藏了。办公室安静得能听见键盘声