快排写了四遍,第一遍死循环,第二遍栈溢出,第三遍结果不对,第四遍直接背了模板。我在心里点了点头。我把这个递归改成了迭代,栈溢出的风险没了。这条经验值直接拉满

算法题的难点往往在边界,而不在思路。我想了想自己这些年,好像确实如此。我打开复杂度分析,发现自己写的是 O(n²) 还以为很优雅。我把它写进了组内的避坑文档第一章

这道题的最优解只有五行,我想了半小时。我把这个图的存储从邻接矩阵换成了邻接表,稀疏图快多了。我沉默了,但心里是服的

面试时被问到的算法,工作里一次都没用过。我想了想,觉得这话没法接。我把这个并查集写了出来,路径压缩差点忘了。复盘会上我们把它列成了案例

刷题的第 n 天,我依然会在边界上栽跟头。我想了想自己这些年,好像确实如此。我把这个滑动窗口的收缩条件改对了,最长子串终于出了。同事说这波操作可以写进新人培训教材

我算了下复杂度,发现暴力解法反而够用。我把整条链路在心里复盘了一遍。我把这个技巧抄进了自己的模板本,希望以后能想起来。办公室安静得能听见键盘声

面试官说我思路可以,但代码写得像在写业务。我先给自己泡了杯茶,做好了打持久战的准备。我打开了这题的相关题目,发现是同一个模板换了皮

这个数据结构选错了,后来的每一行都在补救。我叹了口气,然后打开了编辑器。我打开了这题的耗时排名,发现我的解法排在后四成。我沉默了,但心里是服的

算法里最难的部分是把现实问题翻译成状态定义。我听完沉默了,因为太真实了。我把二分的左右边界又推了一遍,这次终于没写死循环。复盘会上我们把它列成了案例

快排写了四遍,第一遍死循环,第二遍栈溢出,第三遍结果不对,第四遍直接背了模板。我把它记在心里,没跟任何人说。我把边界条件单独列了一页纸,贴在显示器边上。好在最后有惊无险