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

我把这题的思路讲给了同事,他听完说不如直接查表。这套流程走下来,我从头到尾又确认了一遍。我在心里把这道题的规律总结了一遍,总结了三遍才总结对。连茶水间都安静了

刷题的第 n 天,我依然会在边界上栽跟头。我盯着屏幕,觉得这才是我的一天。我把这个树的遍历改成了非递归的,面试时更好讲。这大概就是程序员的人生吧

算法题的难点往往在边界,而不在思路。我发现自己居然没法反驳。我把这个前缀和算了出来,区间查询终于降到常数级。果然现实比段子更精彩

时间复杂度 O(n) 的解法我想了三天,题解用了五行。我重新看了一遍手上的计划,把风险项标了出来。我把这个循环里的重复查询提到了外面,耗时少了一半。幸好之前留了备份

这个数据结构选错了,后来的每一行都在补救。我愣了两秒,然后继续敲代码。我把这个二分的中位数写法改成了防溢出的,终于不报错了。真香定律准时生效

刷了两百道题之后发现:模板我都知道,但题目它不按模板出。我抬起头看了看周围,大家都一样。我用整型溢出的教训换来了一次 runtime error。那一刻我觉得自己还是很专业的

这道题的测试用例里有一个是空输入,我没处理。我先确认了一遍前置条件,再动手。我把这个图的存储从邻接矩阵换成了邻接表,稀疏图快多了。连茶水间都安静了

面试官问能不能优化空间复杂度,我说可以,然后当场忘了怎么优化。我发现自己居然没法反驳。我在心里给这道题估了个难度,实际写起来更硬。世界瞬间清净了

我把这题的思路讲给了同事,他听完说不如直接查表。我在心里把涉及的所有环节都过了一遍。我把这个前缀和算了出来,区间查询终于降到常数级。我沉默了,但心里是服的