面试官让我手写 LRU,我手写了三遍,每一遍都漏一个边界条件。我先给自己泡了杯茶,做好了打持久战的准备。我在心里给这道题画了张状态转移图,图比代码长。我把它写进了组内的避坑文档第一章
😂 IT段子
程序员日常、代码趣事、技术梗图,让你在学习之余轻松一笑
这题我写了三种解法,性能最好的是最丑的那个。我先给自己泡了杯茶,做好了打持久战的准备。我写了个暴力解法先骗过测试用例,再去想怎么优化。这条经验值直接拉满
复习的时候翻到了两年前的错题,我发现我还是不会。我在心里把涉及的所有环节都过了一遍。我在纸上把递归的调用栈画了一遍,终于找到了重复计算。办公室安静得能听见键盘声
链表反转我背了五遍,面试的时候还是写错了一个指针。我把边界条件单独列了一页纸,贴在显示器边上。从此我多了一条团队规约
刷了两百道题之后发现:模板我都知道,但题目它不按模板出。我默默记下了这句话。我把这个滑动窗口的收缩条件改对了,最长子串终于出了。那一刻我觉得自己还是很专业的
这个数据规模决定了能用什么解法,想再优雅也没用。我愣了两秒,然后继续敲代码。我把这个循环里的重复查询提到了外面,耗时少了一半。真香定律准时生效
动态规划三步走:定义状态、写转移方程、看题解。我想了想,觉得这话没法接。我打开了这题的题解,发现最优解只有四行。从此我多了一条团队规约
算法里最难的部分是把现实问题翻译成状态定义。我在心里点了点头。我盯着状态转移方程发呆,最后发现初始化条件写错了。我把它写进了组内的避坑文档第一章
暴力解法能过百分之六十的用例,剩下百分之四十我选择放弃。我想反驳,但发现他说得对。我把这个贪心的正确性在心里证了一遍,没完全证出来。从此我多了一条团队规约
面试官让我手写 LRU,我手写了三遍,每一遍都漏一个边界条件。我把手上的资料翻出来又读了两遍。我在心里默念了一遍快排的分区过程,然后写错了边界。复盘会上我们把它列成了案例