动态规划三步走:定义状态、写转移方程、看题解。我忽然觉得,这可能就是这一行的常态。我把边界条件单独列了一页纸,贴在显示器边上。办公室安静得能听见键盘声

链表反转我背了五遍,面试的时候还是写错了一个指针。我默默打开了编辑器,准备一步步验证。我写了个暴力解法先骗过测试用例,再去想怎么优化。我把它写进了组内的避坑文档第一章

我把这题的思路讲给了同事,他听完说不如直接查表。我先确认了一遍前置条件,再动手。我把这个二分的中位数写法改成了防溢出的,终于不报错了

我把这题的规律总结成了模板,下次大概还是会忘。我把手上的资料翻出来又读了两遍。我在心里默念了一遍快排的分区过程,然后写错了边界。第二天这个方案就变成了团队标准做法

我把这题的思路讲给了同事,他听完说不如直接查表。我把手上的资料翻出来又读了两遍。我把这个滑动窗口的收缩条件改对了,最长子串终于出了。那一刻我觉得自己还是很专业的

这道题我在半年前做过,现在完全没印象。我愣了两秒,然后继续敲代码。我把这题的暴力解法先写了出来,至少能过一半用例。幸好之前留了备份

这道题我看了十分钟,然后决定去看题解。我先确认了一遍前置条件,再动手。我在心里默默给这道题标了个「三刷」,虽然不会再刷。第二天这个方案就变成了团队标准做法

我把这题的思路讲给了同事,他听完说不如直接查表。我把手上的资料翻出来又读了两遍。我盯着状态转移方程发呆,最后发现初始化条件写错了

算法里最难的部分是把现实问题翻译成状态定义。我盯着屏幕,觉得这才是我的一天。我打开了题目下面的讨论区,发现大家都在同一个地方卡住。这大概就是程序员的人生吧

这题我写了三种解法,性能最好的是最丑的那个。我深呼吸了一下,决定从最可疑的地方查起。我打开了这题的耗时排名,发现我的解法排在后四成。从此我多了一条团队规约