凌晨两点,Anshuman盯着屏幕上的第96道题目,光标在"backtrack"函数末尾闪烁。这是他的250天算法挑战,而此刻距离终点,还有154天。
题目看起来温和无害:计算一个数组所有子集的异或值之和。输入[1,3],输出6;输入[5,1,6],输出28。规则清晰,示例完整,连约束条件都贴心地框在1到20之间。
![]()
他写下第一版解法。回溯,递归,两个分支——选当前数字,或不选。11毫秒跑完,Accepted。这在LeetCode的宇宙里,是个及格但平庸的成绩。
然后他看到那条0毫秒的解法。
三行代码。没有递归,没有回溯,没有让人脑壳疼的调用栈。只有位运算的冷光:bits |= x,然后左移len(nums)-1位。数学把指数级的暴力,压缩成了线性的优雅。
Anshuman在博客里叫它"God-Tier",带一点自嘲的敬意。他自己也写了回溯,也是对的,也是"标准答案"。但标准答案和神级答案之间,隔着一整片他还没学会看见的风景。
这种时刻很熟悉。不是挫败,是一种更复杂的情绪——像是走了很远的路,突然发现旁边有条高速公路。你没错,只是不知道。
他继续翻看讨论区。5毫秒的解法出现了,同样用回溯,但写法更干净:把"累加"改成"返回",让递归自己说话。代码短了,意图反而更清楚。有人在这条路线上,比他多走了一步。
250天的挑战,Anshuman记录到第96天。这个数字本身没什么意义,不会让他的简历更亮,也不能保证面试通过。但凌晨两点,当大多数人已经睡去,他还在这里,和一群素未谋面的写作者,共享同一种笨拙的坚持。
算法题是公平的。它不会问你学历,不关心你的焦虑,只认一个结果。但学习的过程从不公平——有人先看到那条高速公路,有人要撞完所有南墙才能发现。Anshuman的11毫秒和别人的0毫秒,差距不在智商,在信息的时空分布。
他关掉编辑器前,把那条三行解法复制到笔记里。不是要背下来,是想记住这种感觉:原来还可以这样。
第96天结束。154天后,他或许能一眼看穿这类题目的位运算本质,或许不能。但此刻,在"知道"和"做到"之间的那个缝隙里,他选择继续坐下去。
这大概是所有长期挑战的真相。不是为了某一天的神级顿悟,是为了在无数个平凡的日子里,保持对"原来还可以这样"的敏感。凌晨两点的光标还在闪,而明天,是第97天。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.