第6阶段:Leetcode
现在是仅次于InterviewBit的第二个最重要的步骤。InterviewBit是Leetcode的一个子集,所以这就是为什么我让你先做InterviewBit的原因,因为Interview Bit收集了Leetcode最重要的问题,这些问题被问得更频繁。下面是执行Leetcode时应遵循的要点:
我建议你从Leetcode上最喜欢的100个问题开始,从上到下解决它们。之后,你可以选择一个主题,选择中等水平的问题,按点赞数排序,从上到下解决问题。当你对主题有足够的信心时,你可以关掉标签,开始解决随机问题。在研究解决方案之前,请至少思考30–45分钟。
每天尝试解决至少四个中等问题,当你对中等问题有足够的信心时,你可以尝试困难的问题。你也可以保持这样的状态,比如说我将在2-3天内解决1-2个难题,并凭借经验和技能提高频率。尽管,对于大多数面试来说,中等水平的问题已经足够了。
在进行编码测试或面试之前,在Leetcode上保持大约400个问题的目标(不包括简单级别的问题)。
以下是我在Leetcode上的一些文章中发现的一些提示,我发现它们非常有用:
(1)如果你觉得某个算法较弱,你可以通过“标记”来过滤问题集。一般情况下不建议这样做,因为你想掌握的实际解决问题的技能中有很多是能够识别解决问题的算法类型的。因此,如果您已经通过“二进制搜索”进行了过滤,那么您知道问题的解决方案可能是二进制搜索。
(2)检查一些旧问题,确保找到了最佳解决方案。LeetCode在线评委通常会接受次优解决方案。如果存在O(N)解决方案,但您提交了O(N log N)解决解决方案,则很可能仍然会通过。运行时/内存的百分位数实际上有点误导,所以不要太担心。唯一需要注意的情况是,有两个非常不同的运行时,例如O(N)与O(N²),并且运行时分布看起来是双峰的。
(3)每周的比赛是一种很好的方式,可以看到你与社区其他人的竞争情况。此外,他们施加了一些时间压力,通常会带来你以前没有见过的新问题。(我强烈建议你每周举办这些比赛,它们比Codeforces更容易,但是的,它们能更好地训练你进行面试)
其他准备提示:
(1)维护你的LinkedIn个人资料:保持最新并保持专业。尽量避免发布垃圾邮件或“请关注我”之类的内容。以文章、视频,甚至只是提示的形式提供价值,人们会想follow你。
(2)在实际面试之前进行几次模拟面试,你可以向你的朋友索要同样的面试机会,或者网上也有多种资源。
(3)正确命名:在面试的编码环节中,确保你对变量进行命名,使其描述清晰的含义,而不是像“a”、“x”、“p”等随机字母。让面试官容易理解代码,编写干净的代码。
(4)阅读其他热门的面试经历:确保在进行某家公司的实际面试之前,你总是尽可能多地阅读面试经历,按日期(最新的第一个)对其进行排序,并开始逐一阅读。至少不要错过他们的一个问题。你应该能够解决/回答面试经历中的所有问题。
(5)热门问题:在面试X公司之前,你还应该阅读“X公司热门问题”。
(6)认知准备HR面:不要低估HR面。如果你准备一些众所周知的HR问题,你将能够很好地回答几乎所有的HR的问题,因为所有这些问题几乎都类似于一个较小的问题领域。所以,把这个较小领域的答案组织好,你可以通过一些谷歌搜索很容易地得到。
(7)继续学习:不要失去希望。继续努力,从错误中吸取教训,总有一天你会进入你梦想中的公司。
