去年三月我在一家做跨境支付的公司面试,二面面试官没让我自我介绍,直接在共享屏幕上敲了一道题。LeetCode 239,滑动窗口最大值。
这题我刷过,不止一次,单调队列的模板闭着眼能默出来。但他把数组长度从 10^5 改成了 10^9,然后问我:现在还这么写吗。
我卡了大概四十秒。那四十秒里我脑子里翻的是题解区的代码结构,不是解题本身。那场面试自然没下文。
回去之后我做了一件事:把力扣主页翻到第一页,从 AC 时间最早的题开始一题一题往回想,问自己「这题的思路是我自己推出来的,还是我看题解看来的」。结果是——800 多道题里我能确定独立做出来的,不到 200 道。
这个比例我自己都吓一跳,所以才有了后面这一堆折腾。
中文站和国际站,题库根本不是同一套
很多人只知道 leetcode.cn 和 leetcode.com 是两个站,但不知道题目不是同步的。中文站 2018 年上线的时候域名还是 leetcode-cn.com,后来才换成 leetcode.cn,这个老用户应该有印象。
我去年 11 月闲着没事截了个图对比:中文站题库页显示的题目总数比国际站少一截,差的主要是付费题和一部分新题。国际站每周出新题,中文站有时候隔一阵补上,有时候干脆不补。但反过来,中文站有几个专题国际站是没有的(或者说入口藏得非常深):
- 剑指 Offer 专题,67 题,免费。国内面试的命中率我个人体感比 Hot 100 还高,尤其是那些中小厂,面试官经常直接从里面挑。
- 面试经典 150 题,这是后来上线的,替掉了更早的那套 75 题。它是按专题顺序排的,不是按题号,跟着做一遍下来知识点的覆盖比乱刷强。
- 企业题库里字节、腾讯、美团这些标签,更新频率比国际站的 Company Tags 勤快。
还有个细节很多人不知道:中文站的周赛是北京时间周日上午 10:30,双周赛是周六晚上 22:30。国际站的比赛在北京时间周日凌晨。你要是想两边都打,等于一个周末熬两次夜。我坚持了一个月,第二个月就放弃了,现在只打中文站。
难度标签这个东西,别太当真
力扣的难度标签是人工标的,而且标完之后很少改。结果就是有一批题的难度完全对不上,这个坑我踩过好几次。
最典型的一对:992. K 个不同整数的子数组 标的是 Hard,1248. 统计「优美子数组」 标的是 Medium。这两题的解法几乎一模一样,都是「恰好 K 个 = 至多 K 个 − 至多 K−1 个」的滑窗差分,你把 992 的代码改两行就能 AC 1248。同一套思路,两个难度。
反过来也有。41. 缺失的第一个正数 标 Hard,核心就是原地哈希,想通了十分钟能写完。而 4. 寻找两个正序数组的中位数 也是 Hard,那个二分的边界条件我调了整整一个下午。
所以我现在不看难度标签,我看通过率。中文站每道题下面都有显示。我的经验值是这样的:
- 通过率低于 35% 的 Medium,基本要当 Hard 来做
- 通过率高于 55% 的 Hard,往往只是题面长、读题成本高,思路本身不复杂
- 通过率在 60% 以上的 Easy,才是真正意义上的 Easy
按这个筛,比按难度标签筛靠谱得多。
刷了 800 题还是不会做新题,问题出在哪
我后来复盘了很久,结论是:刷题数量从来不是瓶颈,反馈周期才是。
大多数人的刷题循环是这样的——看题,想五分钟没思路,打开题解,看懂,抄一遍,AC,下一题。这个循环里唯一被训练的能力是「看懂别人的代码」,不是「自己构造解法」。你刷 800 题,就是把这个循环重复了 800 次。
而且力扣的题解区有个特点,高赞题解往往写得非常漂亮,模板化、有注释、有图。看完之后会产生一种「我懂了」的错觉,实际上你懂的是那份解释,不是那个推导过程。现在力扣不是还加了 AI 助手吗,能直接给你讲思路,这个对效率是好事,但对「自己卡住」这件事的容忍度就更低了。
我的做法是在中间插一道硬性关卡:
- 每道题先给自己 25 分钟。写不出来,只允许看题解的第一段思路,绝对不看代码,然后关掉页面自己重新写。
- AC 之后,第 7 天和第 21 天各重做一次,重做时不许看任何东西,包括自己之前的代码。
- 两次重做都能独立写出来,才在笔记里标记成「掌握」。只过一次的标记成「会做但不确定」。
- 题解区只看踩数最高的那一条,看完立刻关。评论区往下翻基本是同温层互相安慰,没什么信息量。
这么搞了半年,我的「掌握」数量从不到 200 涨到了 340 左右。总数没怎么涨,反而掉了——因为我把一批只做过一次的题从统计里剔掉了。
会员到底买不买,分三个场景看
中文站的 Plus 和国际站的 Premium 是两套收费、两套权益,很多人以为是一回事,其实不是。
国际站 Premium 的核心是三块:解锁付费题目、公司标签筛选、官方题解视频。中文站 Plus 的核心是企业题库(国内公司标签)、视频题解、模拟面试。
我的判断标准:
- 准备国内大厂面试——中文站 Plus 更值,企业题库的标签直接对应字节、腾讯、美团这些,命中率明显
- 准备外企或者远程岗位——国际站 Premium,付费题里有一批是原题
- 只是刷 Hot 100 或者跟着学习计划走——两边都别买,免费的部分完全够
价格我不写了,因为经常有活动,我上次续的时候比标价便宜不少。这种东西自己下单前看一眼就行,写死了反而误导人。
周赛,我唯一认真推荐的东西
我周赛最好成绩是三题,第四题永远卡在最后一两个 case。积分卡在 1700 上下浮动,上不去。
但周赛对我的价值从来不在分数。它是唯一一个逼你在完全没有题解的情况下面对陌生题的场景。90 分钟四道题,做不出来就是做不出来,没有「看眼题解再写」这个选项。这种压力跟面试是同一类的。
我现在的节奏是:只认真做前两题,第三题如果 40 分钟没思路就放弃,第四题直接不看。省下来的时间拿去重做上周做错的题。听起来有点怂,但实际涨的比之前硬刚四道题的时候快。
写到这里差不多了。我也不知道 800 题到底够不够。可能对有些岗位早就够了,对另一些岗位永远不够。
但至少现在我拿到一道没见过的题,第一反应不是「这题我在哪见过」,而是先去看输入规模和数据范围。这个变化花了大概两年,也没人给我发奖状。