Skip to content

最佳实践问题

原文:https://www.techinterviewhandbook.org/best-practice-questions/

tip

截至 2022 年 4 月,我已经制定了一个 12 周的学习计划,其中包括复习和练习题的课程。如果你想定制自己的练习题,我还开发了 Grind 75 ,它是 Blind 75 的现代版,你可以定制。

嘿,我是盲人 75 的作者👋!

练习是准备编码面试的最好方法。LeetCode 有一千多个问题。应该练哪个?因此,几年前,我整理了一份关于 LeetCode 最重要的 75 个问题的清单。许多其他的 LeetCode 问题是这些单独问题的技术的混合。我在上次找工作时用这个列表只做重要的问题。

我通过从我的 freeCodeCamp 文章中提取问题在上分享了这个列表,以节省人们修改时的时间,有人在leet code 论坛上转发了这个列表。它不知怎么的就炸了,在编码面试现场超级出名,人们甚至给它起了个名字——盲 75 。盲人 75 题作为 LeetCode 列表可以在这里找到。

几年后,我将列表进一步精简为 50 个问题,并将其分散在 5 周的时间表中。这是建议的修改和练习 LeetCode 上的算法问题的时间表。如果你还没有账户,注册一个,这对你面试的成功至关重要!

在练习时,建议你像对待真正的编码面试一样对待它,并在提交前彻底检查。考虑甚至手动提出一些测试用例,并运行它们来验证正确性!

我为以下问题创建了一个 LeetCode list (高级问题除外)。请随意使用它来跟踪您的练习进度。

Expert tip

如果你的时间不多了, AlgoMonster 旨在帮助你在最短的时间内通过技术面试。由谷歌工程师, AlgoMonster 使用数据驱动的方法来教你最有用的关键问题模式,并有内容帮助你快速修改基本的数据结构和算法。学习和理解模式,而不是背答案!****

第 1 周-序列

在第一周,我们将通过做一些关于数组和字符串的简单和中等的问题来热身。数组和字符串是面试中最常见的问题类型;熟悉它们将有助于建立坚实的基础,更好地处理更棘手的问题。

问题 困难 LeetCode
两个总和 容易的 链接
包含重复 容易的 链接
买卖股票的最佳时机 容易的 链接
有效变位词 容易的 链接
有效括号 容易的 链接
最大子阵列 容易的 链接
除自身以外的数组乘积 中等 链接
3 总和 中等 链接
合并间隔 中等 链接
分组字谜 中等 链接

Optional ​

问题 困难 LeetCode
最大乘积子阵列 中等 链接
在旋转排序数组中搜索 中等 链接

第 2 周-数据结构

第二周的重点是链表、字符串和基于矩阵的问题。目标是学习处理链表、遍历矩阵和序列分析(数组/字符串)技术的常用例程,如滑动窗口、链表遍历和矩阵遍历。

问题 困难 LeetCode
反转一个链表 容易的 链接
检测链表中的循环 容易的 链接
盛水最多的容器 中等 链接
在旋转排序数组中查找最小值 中等 链接
最长重复字符替换 中等 链接
没有重复字符的最长子字符串 中等 链接
岛屿数量 中等 链接
从列表末尾删除第 n 个节点 中等 链接
回文子串 中等 链接
太平洋大西洋水流 中等 链接
最小窗口子串 困难的 链接

第 3 周-非线性数据结构

第三周的重点是非线性数据结构,如树、图和堆。您应该熟悉各种树遍历(按序、前序、后序)算法和图遍历算法,如广度优先搜索和深度优先搜索。根据我的经验,使用更高级的图形算法(Dijkstra 的和 Floyd-Warshall 的)是非常罕见的,通常也没有必要。

问题 困难 LeetCode
反转/翻转二叉树 容易的 链接
验证二叉查找树 中等 链接
非重叠区间 中等 链接
根据前序和后序遍历构造二叉树 中等 链接
前 K 个频繁元素 中等 链接
克隆图 中等 链接
课程表 中等 链接
序列化和反序列化二叉树 困难的 链接
二叉树最大路径和 困难的 链接

Optional ​

问题 困难 LeetCode
二叉树的最大深度 容易的 链接
同一棵树 容易的 链接
二叉树层次顺序遍历 中等 链接
编码和解码字符串 中等 链接(溢价)

第 4 周-更多数据结构

第 4 周建立在前几周的知识基础上,但是问题的难度增加了。希望在面试中看到这样的问题。您可以在更高级的数据结构上进行更多的练习,比如(但不仅限于)堆和尝试,这些不太常见,但仍然会被问到。

问题 困难 LeetCode
另一棵树的子树 容易的 链接
BST 的最低共同祖先 容易的 链接
实现 Trie(前缀树) 中等 链接
添加和搜索单词 中等 链接
BST 中最小的元素 中等 链接
合并 K 个排序列表 困难的 链接
从数据流中查找中值 困难的 链接
插入间隔 中等 链接
最长连续序列 中等 链接
单词搜索 II 困难的 链接

Optional ​

问题 困难 LeetCode
会议室 容易的 链接(溢价)
第二会议室 中等 链接(溢价)
图形有效树 中等 链接(溢价)
无向图中连通分量的数目 中等 链接(溢价)
外星人词典 困难的 链接(溢价)

第 5 周-动态编程

第五周的重点是动态规划(DP)问题。就我个人而言,作为一名面试官,我并不喜欢 DP 问题,因为它们并不真正适用于实际情况,坦率地说,如果我在面试中被要求回答这些棘手的 DP 问题,我就不会得到这份工作。然而,像谷歌这样的公司仍然会问 DP 问题,如果加入谷歌是你的梦想,DP 是不可避免的。

DP 问题可能很难掌握,最好的解决方法是...你猜对了——练习!熟悉记忆和回溯的概念。

实际上,学习和练习 DP 问题的投资回报率(ROI)很低。因此,DP 问题不那么重要/可选,你应该只在你有空闲时间,并且你非常渴望涵盖所有基础(和谷歌面试)的情况下才这样做。

问题 困难 LeetCode
爬楼梯 容易的 链接
硬币零钱 中等 链接
最长增长子序列 中等 链接
组合和 中等 链接
入室抢劫犯 中等 链接
入室抢劫犯 2 中等 链接
解码方式 中等 链接
独特的路径 中等 链接
跳跃游戏 中等 链接
移行点 中等 链接

动态编程教程

精品课程

如果你想要更多的结构化算法练习,我推荐以下课程:

AlgoMonsterT3】

AlgoMonster 旨在帮助你在最短的时间内通过技术面试。由谷歌工程师开发的 AlgoMonster 使用数据驱动的方法来教你最有用的关键问题模式,并有内容帮助你快速修改基本的数据结构和算法。最重要的是,AlgoMonster 不是基于订阅的——支付一次性费用,就可以获得终身访问。 今天加入七折优惠→

寻找编码面试:编码问题的模式

设计大师的这门课程扩展了推荐练习题中的问题,但从问题模式的角度来进行练习,这是一种我也同意的学习方法,我个人也使用这种方法来更好地编写面试代码。本课程允许你用 Java、Python、C++、JavaScript 来练习选定的问题,并提供这些语言的示例解决方案以及一步一步的可视化。学习和理解模式,而不是背答案! 现在获得终身使用权→

掌握编码面试:数据结构+算法

这本 Udemy 畅销书是评分最高的面试准备课程之一(4.6 星,21.5k 评分,135k 学生),包含了价值 19 个小时的内容。像技术面试手册一样,它超越了编码面试,涵盖了简历,非技术面试,谈判。是一个全包!请注意,JavaScript 用于编码演示。 结账→



回到顶部