最佳实践问题 标题:最佳实践问题 副标题:作者盲人75的精选问题 描述:作者为盲人75编写的准备算法编码面试的最佳实践问题列表,分布在为期5周的计划中 关键词:[算法,编码,面试,问题,力扣,盲人75] 显示侧边栏:文档 分页下一页:编码面试速查表

导入算法课程

import AlgorithmCourses from './_courses/AlgorithmCourses.md'

导入内联广告

import InDocAd from './_components/InDocAd';

作者盲人75的最佳实践问题 | 技术面试手册

:::提示

截至2022年4月,我已经开发了一个12周学习计划,其中包括复习和实践问题的课程。如果你想要自定义自己的实践问题,我还开发了Grind 75,这是一个现代版的盲人75,你可以进行自定义。

:::

嘿,盲人75的作者在这里!

练习是准备编码面试的最佳方法。力扣上有超过一千个问题。你应该练习哪些问题呢?多年前,我从力扣上提取了最重要的75个问题,制作了一个列表。许多其他力扣问题都是这些个别问题的技术的混合体。在我的上一份工作中,我使用这个列表来只做重要的问题。

我在Blind上分享了这份列表,通过从我的freeCodeCamp文章中提取问题,以节省人们在复习时的时间,有人将这个列表在力扣论坛上重新发布。不知何故,它突然爆红,并在编码面试领域变得非常著名,人们甚至给它起了一个名字——盲人75。作为力扣列表的盲人75问题可以在这里找到这里

几年后,我将这个列表进一步精简为只有50个问题,并将它们分布在5周的时间表中。以下是建议的在力扣上复习和实践算法问题的时间表。如果你还没有账户,请注册一个,这对于你的面试成功至关重要!

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

我为以下问题创建了一个力扣列表(除了高级问题)。你可以使用它来跟踪你的练习进度。

:::专家提示

如果你时间紧张,AlgoMonster旨在帮助你在尽可能短的时间内掌握技术面试。由谷歌工程师开发的AlgoMonster采用数据驱动的方法教授你最常用的关键问题模式,并提供帮助你快速复习基本数据结构和算法的内容。学会理解和应用模式,而不是死记硬背答案!

:::

第一周 - 序列

在第一周,我们将通过做一些简单和中等难度的数组和字符串问题来热身。数组和字符串是面试中最常见的题型;熟悉它们将有助于建立强大的基础知识,从而更好地处理更困难的问题。

问题 难度 力扣
两数之和 简单 链接
包含重复元素 简单 链接
最佳买卖股票时机 简单 链接
有效的字母异位词 简单 链接
有效的括号 简单 链接
最长连续子数组 简单 链接
数组除自身以外的乘积 中级 链接
三数之和 中级 链接
合并区间 中级 链接
字母异位词分组 中级 链接

可选

问题 难度 力扣
最大乘积子数组 中级 链接
在旋转排序数组中查找 中级 链接

第二周 - 数据结构

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

问题 难度 力扣
反转链表 简单 链接
检测链表中的循环 简单 链接
容器中最大水量 中级 链接
在旋转排序数组中找到最小值 中级 链接
长度重复字符替换 中级 链接
不含重复字符的最长子串 中级 链接
岛屿数量 中等 链接
删除链表中倒数第N个节点 中等 链接
回文子串 中等 链接
太平洋和大西洋的水流 中等 链接
最小窗口子字符串 困难 链接

第三周 - 非线性数据结构

第三周的重点是非线性数据结构,如树、图和堆。你应该熟悉各种树遍历算法(中序、前序、后序)和图遍历算法,如广度优先搜索和深度优先搜索。根据我的经验,使用更高级的图算法(迪杰斯特拉和弗洛伊德-沃沙尔)是非常罕见的,通常没有必要。

问题 难度 LeetCode
倒置/翻转二叉树 简单 链接
验证二叉搜索树 中等 链接
无重叠区间 中等 链接
构建由先序和中序遍历生成的二叉树 中等 链接
最高频元素 中等 链接
克隆图 中等 链接
课程表 中等 链接
序列化和反序列化二叉树 困难 链接
二叉树最大路径和 困难 链接

可选

问题 难度 LeetCode
二叉树的最大深度 简单 链接
同一棵树 简单 链接
二叉树层序遍历 中等 链接
编码和解码字符串 中等 链接 (高级)

第四周 - 更多的数据结构

第四周在前三周的知识基础上进行了扩展,但问题的难度有所提高。预计面试中会遇到类似水平的题目。你会在更高级的数据结构上进行更多练习,例如(但不限于)堆和尝试,这些数据结构不太常见,但仍然会被问到。

问题 难度 LeetCode
树的子树 简单 链接
二叉搜索树的最低公共祖先 简单 链接
实现前缀树(Trie) 中等 链接
添加和搜索单词 中等 链接
二叉搜索树中的第K个最小元素 中等 链接
合并K个有序链表 困难 链接
从数据流中找到中位数 困难 链接
插入区间 中等 链接
最长连续序列 中等 链接
词搜索II 困难 链接

可选

问题 难度 LeetCode
会议房间 简单 链接 (高级)
会议房间II 中等 链接 (高级)
图的有效树 中等 链接 (高级)
无向图中连通分量的数量 中等 链接 (高级)
外星字典 困难 链接 (高级)

第五周 - 动态规划

第五周专注于动态规划(DP)问题。就我个人而言,作为面试官,我不喜欢DP问题,因为它们并不适用于实际场景,而且说实话,如果我在面试中不得不解决那些棘手的DP问题,我可能就不会得到这份工作。然而,像谷歌这样的公司仍然会问DP问题,如果你梦想加入谷歌,DP是不可避免的。

DP问题可能很难掌握,最好的提高方法就是……你猜对了——实践!熟悉记忆化和回溯的概念。

实际上,学习和练习DP问题的投资回报(ROI)非常低。因此,DP问题不太重要/可选,除非你有时间余裕,并且非常热衷于全面覆盖(以及准备面试谷歌)。

问题 难度 LeetCode
攀登楼梯 简单 链接
硬币找零 中等 链接
最长递增子序列 中等 链接
组合总和 中等 链接
抢劫银行 中等 链接
抢劫银行II 中等 链接
解码方式 中等 链接
唯一路径 中等 链接
跳跃游戏 中等 链接
词拆分 中等 链接

动态规划课程