best-practice-questions


文档摘要

id: best-practice-questions title: 最佳实践问题 sidebarlabel: 最佳实践问题 description: 由《Blind 75》作者精心整理的算法编码面试最佳实践问题,涵盖为期5周的学习计划 keywords: [算法, 编码, 面试, 问题, LeetCode, Blind 75] displayedsidebar: docs paginationnext: coding-interview-cheatsheet import AlgorithmCourses from './\courses/AlgorithmCourses.md' import InDocAd from '.

id: best-practice-questions title: 最佳实践问题 sidebar_label: 最佳实践问题 description: 由《Blind 75》作者精心整理的算法编码面试最佳实践问题,涵盖为期5周的学习计划 keywords: [算法, 编码, 面试, 问题, LeetCode, Blind 75] displayed_sidebar: docs pagination_next: coding-interview-cheatsheet

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

import InDocAd from './_components/InDocAd';

:::tip

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

:::

嗨,我是《Blind 75》的作者!

练习是准备编码面试的最佳方式。LeetCode上有超过一千道题目,到底该练哪些呢?于是,几年前,我精选了LeetCode上最重要的75道题LeetCode。许多其他LeetCode题目都是这些精选题目的技巧组合。我在上一份求职中就只做了这些重要题目。

我曾在Blind上分享过这份清单,从我的freeCodeCamp文章中提取了题目,以节省大家的复习时间;后来有人又在LeetCode论坛上转载了这份清单。它不知怎么地火了起来,在编码面试圈里变得超级有名,甚至有人给它起了个名字——Blind 75。Blind 75的LeetCode题目清单可以在这里找到这里

几年后,我又进一步精简了这份清单,只保留了50道题,并将其分布在5周的学习计划中。以下是针对LeetCode算法题的复习与练习建议安排。如果你还没有账号,赶紧注册一个吧,这对你的面试成功至关重要!

练习时,建议你把它当作真正的编码面试来对待,提交前务必仔细检查。甚至可以手动设计一些测试用例,亲自跑一遍验证正确性!

我已经为以下题目创建了一个LeetCode列表(不包括Premium题目)。你可以随时用它来追踪自己的练习进度。

:::tip 专家提示

如果你时间紧迫,AlgoMonster致力于帮助你在最短时间内轻松通过技术面试。由谷歌工程师打造,AlgoMonster采用数据驱动的方法,教你最实用的关键题型模式,并提供内容帮助你快速复习基础数据结构和算法。学会并理解模式,而不是死记硬背答案!

:::

第一周——序列

第一周,我们将从数组和字符串的简单题与中等难度题混合练习开始热身。数组和字符串是面试中最常见的题型;熟悉它们有助于打下扎实的基础,从而更好地应对更难的题目。

题目 难度 LeetCode
两数之和 简单 链接
包含重复元素 简单 链接
股票买卖的最佳时机 简单 链接
有效变位词 简单 链接
有效括号 简单 链接
最大子数组 简单 链接
数组中除自身以外的乘积 中等 链接
三数之和 中等 链接
合并区间 中等 链接
分组异位词 中等 链接

可选

题目 难度 LeetCode
最大乘积子数组 中等 链接
在旋转排序数组中查找 中等 链接

第二周——数据结构

第二周的重点是链表、字符串以及基于矩阵的题目。目标是掌握处理链表的常用方法,遍历矩阵的技巧,以及序列分析(数组/字符串)的技巧,比如滑动窗口、链表遍历和矩阵遍历。

题目 难度 LeetCode
反转链表 简单 链接
检测链表中的环 简单 链接
盛水容器 中等 链接
在旋转排序数组中查找最小值 中等 链接
最长重复字符替换 中等 链接
无重复字符的最长子串 中等 链接
岛屿数量 中等 链接
删除链表倒数第N个节点 中等 链接
回文子串 中等 链接
太平洋大西洋水流 中等 链接
最小窗口子串 链接

第3周 - 非线性数据结构

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

题目 难度 LeetCode
翻转二叉树 简单 链接
验证二叉搜索树 中等 链接
不重叠区间 中等 链接
根据先序和中序遍历构造二叉树 中等 链接
前K个频繁元素 中等 链接
克隆图 中等 链接
课程安排 中等 链接
序列化与反序列化二叉树 链接
二叉树最大路径和 链接

可选

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

第4周 - 更多数据结构

第4周在之前几周知识的基础上进一步深化,但题目难度有所提升。面试时很可能会遇到这种难度的题目。你可以更多地练习更高级的数据结构,比如(但不限于)堆和字典树,这些虽然不常见,但仍会被问到。

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

可选

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

第5周 - 动态规划

第5周的重点是动态规划(DP)相关题目。作为面试官,我个人并不太喜欢动态规划题,因为它们在实际场景中并不真正适用。坦白说,如果我在面试时被要求解答那些难度极高的动态规划题,我可能根本拿不到这份工作。不过,像谷歌这样的公司依然会问动态规划题。如果你的梦想是加入谷歌,那么动态规划就是无法回避的。

动态规划题很难掌握,而提高这方面能力的最佳方法……你猜对了——就是多做题!务必熟悉记忆化和回溯这两种概念。

从实际角度来看,花时间学习并练习动态规划题的投资回报率非常低。因此,动态规划题的重要性相对较低,属于可选内容。只有当你有充裕的时间,并且特别想做到万无一失、确保自己完全掌握所有知识点时,才应该去钻研这些题目(尤其是准备应聘谷歌时)。

题目 难度 LeetCode
爬楼梯 简单 链接
零钱兑换 中等 链接
最长递增子序列 中等 链接
组合总和 中等 链接
打家劫舍 中等 链接
打家劫舍 II 中等 链接
解码方式 中等 链接
唯一路径 中等 链接
跳跃游戏 中等 链接
单词拆分 中等 链接

动态规划课程

优质课程

如果你想进行更系统化的算法练习,我推荐以下几门课程:

免责声明
本文档采用基于机器的 AI 翻译服务进行翻译。尽管我们力求准确,但请注意,自动翻译可能存在错误或不准确之处。应以原文语言版本的文档作为权威依据。如需获取关键信息,建议使用专业的人工翻译。对于因使用本翻译而产生的任何误解或误读,我们概不负责。


发布者: 作者: 转发
评论区 (0)
U