这个数据规模决定了能用什么解法,想再优雅也没用。我在心里点了点头。我打开了这题的官方题解,发现我的思路其实是另一种。我把它写进了组内的避坑文档第一章

刷题周赛打了三个月,rating 从 1500 涨到 1505。我先确认了一遍前置条件,再动手。我把这个并查集写了出来,路径压缩差点忘了。我把这条经验写进了团队 wiki

这题我写了三种解法,性能最好的是最丑的那个。我把手上的资料翻出来又读了两遍。我把这个递归改成了迭代,栈溢出的风险没了。连茶水间都安静了

算法题的难点往往在边界,而不在思路。我叹了口气,然后打开了编辑器。我把这道题加入了每周复习清单,希望下次能记住。幸好之前留了备份

复习的时候翻到了两年前的错题,我发现我还是不会。我先给自己泡了杯茶,做好了打持久战的准备。我在心里默默给这道题标了个「三刷」,虽然不会再刷。连茶水间都安静了

面试官让我手写 LRU,我手写了三遍,每一遍都漏一个边界条件。我默默打开了编辑器,准备一步步验证。我打开了这个数据结构的定义,发现有现成的实现可以用。这条经验值直接拉满

算法里最难的部分是把现实问题翻译成状态定义。我默默记下了这句话。我把这个图的存储从邻接矩阵换成了邻接表,稀疏图快多了。果然现实比段子更精彩

面试时被问到的算法,工作里一次都没用过。我忽然觉得,这可能就是这一行的常态。我在心里给这道题估了个难度,实际写起来更硬。感动,然后我学到了新的一课

面试官说我思路可以,但代码写得像在写业务。我深呼吸了一下,决定从最可疑的地方查起。我打开了题目下面的讨论区,发现大家都在同一个地方卡住。这大概就是程序员的人生吧

算法里最难的部分是把现实问题翻译成状态定义。我想反驳,但发现他说得对。我把这个前缀和算了出来,区间查询终于降到常数级。我把它写进了组内的避坑文档第一章