课程简介
数据结构与算法是程序员面试的必考题,更是阿里、腾讯、字节这些大厂面试考察的重中之重。为了攻克算法面试拿下心仪 Offer,很多程序员面试前都会在 LeetCode 上疯狂刷题备战面试。
然而面对海量题目,我们很难在短时间内刷完并熟练掌握,那该如何高效准备,快速掌握刷题、解题技巧,从容应对即将到来的算法面试?
你会学到什么?
专栏旨在面试前一个月,带你圈考点、破难点、练真题、模拟考备战。
为此,专栏精心设计为 4 个模块,合计 23 讲循序展开,以解题为核心, 300+ 道大厂高频面试题为切入点,引出很多你在面试中常踩的坑和卡壳的知识点,给你一套通用的解题方法论。
模块一:数据结构之一解多题篇
这一模块将由高频数据结构面试题,引出常考的栈及单调栈、队列及单调队列;重点介绍如何“三板斧”搞定链表题,如何使用树的三种遍历搞定所有二叉树题目,通过树的遍历展开介绍排序技巧的妙用。在这里,我会带你掌握常考数据结构的各种特点、各种变形及各种考点。
模块二:算法之一解多题篇
这一模块将从常规的二分搜索过渡到高阶二分搜索,再从 3 种区间套路介绍双指针解题场景。重点介绍算法面试中常考的贪心、回溯、搜索及动态规划。帮助你快速建立常考算法题的系统框架。
模块三:一题多解篇
这一模块会带你挖掘题目的特点,再相应对标不同的数据结构与算法,从而得出不同的解法。我精选出 7 道高频面试题,涵盖动态规划、单调栈、优先级队列、位运算、DFS/BFS、KMP/BM 等算法的实际应用,解决你看到考题不知从何下手的难题,掌握快速审题和解题的能力。
模块四:代码模板篇
这一模块将常见的“套路”题,总结成了手写代码时应该准备的各种代码模板。希望这套作者压箱底的独家代码模板,能帮你迅速拿下算法面试。此外,作者把面试中高频的知识点拆分成了一块块“积木”,将你的面试求解过程变成了“搭积木的游戏”,帮你在面试时更高效地写出 0 Bug 的代码。
最后的彩蛋中,作者会结合自己一线大厂面试时拿到的一手资料,分享面试心得与技巧,比如实战中的注意事项、沟通技巧、思路交流等,帮你全方位准备,从容面试。
课程目录
模块一:数据结构之一解多题篇
01 | 栈:从简单栈到单调栈,解决经典栈问题
02 | 队列:FIFO 队列与单调队列的深挖与扩展
03 | 优先级队列:堆与优先级队列,筛选最优元素
04 | 链表:如何利用“假头、新链表、双指针”解决链表题?(上)
05 | 链表:如何利用“假头、新链表、双指针”解决链表题?(下)
06 | 树:如何深度运用树的遍历?
07 | 并查集:如何利用两行代码写并查集?
模块二:算法之一解多题篇
08 | 排序:如何利用合并与快排的小技巧,解决算法难题?
09 | 二分搜索:为什么说有序皆可用二分?
10 | 双指针:如何掌握最长、定长、最短区间问题的解题决窍?
11 | 贪心:这种思想,没有模板,如何才能掌握它?
12 | 回溯:我把回溯总结成一个公式,回溯题一出就用它
13 | 搜索:如何掌握 DFS 与 BFS 的解题套路?
14 | DP:我是怎么治好“DP 头痛症”的?
模块三:一题多解篇
15 | 字符串查找:为什么我最终选择了 BM 算法?
16 | 如何利用 DP 与单调队列寻找最大矩形?
17 | 深度思考子集:如何掌握 5 种通用解法?
18 | 单词接龙:如何巧用深搜与广搜的变形?
19 | 最小体力消耗路径:如何突破经典题型,掌握解题模板?
20 | 5 种解法,如何利用常量空间求解最长有效括号长度?
21 | 安排会议室:如何利用多种方法安排会议室?
模块四:代码模板篇
22 | 数据结构模板:如何让解题变成搭积木?
23 | 算法模板:如何让高频算法考点秒变默写题?
彩蛋
彩蛋 | 聊聊我的大厂面试经历,谈谈我对算法学习的看法
结语
结束语 | 算法的精进之路
讲师介绍
德鲁伊,前微软资深软件工程师
9 年技术研发经验,主导过 40PB 级别的分布式存储系统架构设计与实现。带领团队实现核心模块,如用户态文件系统、存储引擎、分布式 KV 缓存。负责部门技术面试,有丰富的技术面试经验。此外,曾作为复旦大学特聘讲师,面向研究生学院开展 IT 类课程,拥有多年授课经验。擅长架构设计、机器学习、云计算、大数据等领域。