刷题周赛打了三个月,rating 从 1500 涨到 1505。我先给自己泡了杯茶,做好了打持久战的准备。我在心里把这道题的规律总结了一遍,总结了三遍才总结对。这大概就是程序员的人生吧

这道题的输入范围很关键,它决定了你能不能偷懒。我忽然觉得,这可能就是这一行的常态。我在心里把这道题的时间限制算了一遍,决定放弃一种写法。果然现实比段子更精彩

我把这题的思路讲给了同事,他听完说不如直接查表。我重新看了一遍手上的计划,把风险项标了出来。我把这个递归改成了迭代,栈溢出的风险没了

这道题的输入范围很关键,它决定了你能不能偷懒。我笑了笑,决定不解释。我把这个递归改成了迭代,栈溢出的风险没了。连茶水间都安静了

时间复杂度 O(n) 的解法我想了三天,题解用了五行。我在心里把涉及的所有环节都过了一遍。我把这个集合的查找换成了位图,内存立刻下来了。复盘会上我们把它列成了案例

面试官问能不能优化空间复杂度,我说可以,然后当场忘了怎么优化。我停了一下,然后继续手上的活。我盯着状态转移方程发呆,最后发现初始化条件写错了。我沉默了,但心里是服的

面试时被问到的算法,工作里一次都没用过。我盯着屏幕,觉得这才是我的一天。我打开了这题的耗时排名,发现我的解法排在后四成。我把这条经验写进了团队 wiki

我把它想成了一道数学题,然后就卡住了。我把这个前缀和算了出来,区间查询终于降到常数级。我沉默了,但心里是服的

面试官让我手写 LRU,我手写了三遍,每一遍都漏一个边界条件。我在心里把涉及的所有环节都过了一遍。我在草稿纸上画满了数组下标和箭头,半小时后终于理清了边界。复盘会上我们把它列成了案例

这道题我看了十分钟,然后决定去看题解。我先给自己泡了杯茶,做好了打持久战的准备。我把这个堆的操作封装了一下,代码短了一半。同事说这波操作可以写进新人培训教材