极客大学算法训练营2020版
大纲
预习 10 周如何攻破算法面试?
- 数据结构和算法知识总览
- 面试刷题都有哪些误区?
- 如何高效学习数据结构和算法?
- 如何快速高效地分析时间复杂度和空间复杂度?
“工欲善其事,必先利其器”,在开启训练营之前,看看我们要做哪些“热身运动”。
数组、链表、跳表
- 数组和链表原理讲解
- 面试热点数据结构跳表剖析
- 常考面试题目精讲
数组、链表属于线性表结构,所谓线性表,就是数据排成一条线一样的结构。
栈、队列、优先队列、双端队列
- 栈和队列原理讲解
- 面试热点优先队列、双端队列剖析
- 常考面试题目精讲
我们熟知栈是“先入后出”,队列是“先入先出”,那这些数据结构是如何应用的呢?
哈希表、映射、集合
- 哈希表、映射、集合的原理讲解
- 哈希表常见实践案例
- 常考面试题目精讲
在建造哈希表时不仅要设定一个“好”的哈希函数,而且要设定一种处理冲突的方法。
树、二叉树、二叉搜索树
- 树是如何演进的?
- 二叉搜索树原理讲解
- 常考面试题目精讲
从链表到树的发展,你可以发现链表就是特殊化的树,而树又是特殊化的图。
堆、二叉堆和图
- 堆和二叉堆原理讲解
- 图的属性和分类
- 常考面试题目精讲
堆是可以迅速找到一堆数中的最大或者最小值的数据结构。
递归、分治和回溯
- 递归基础知识及常见变形
- 递归的高阶形式有哪些?
- 分治与回溯的原理讲解
- 常考面试题目精讲
树的面试题解法一般都是递归,熟练使用递归对于培养程序化思维是非常有帮助的。
深度、广度优先搜索
- 如何用代码实现 BFS、DFS?
- BFS 和 DFS 有什么区别?
- 双向 BFS 原理剖析
- 常考面试题目精讲
给你一个用户,如何找出这个用户所有的一度、二度、三度好友关系呢?
贪心算法与二分查找
- 贪心算法的原理是什么?
- 贪心算法有哪些高级应用?
- 二分查找有哪些高级变形?
- 常考面试题目精讲
贪心算法与动态规划的不同在于,它对每个子问题的解决方案都能作出选择,并且不能回退。
动态规划
- 递推、状态的定义、最优子结构和状态转移方程是动态规划最核心的 4 个要素。
- 动态规划的原理讲解
- 理解动态规划的关键点是什么?有哪些误区?
- 解析动态规划不同路径问题、背包问题
- 初级、中级动态规划题目精讲
并查集、字典树、红黑树和 AVL 树
- 原理讲解及其基本实现
- 红黑树和 AVL 性能对比
- 常考面试题目精讲
AVL 树是一种高度平衡的二叉树,所以查找效率非常高也比较复杂;而红黑树只做到近似平衡,所以维护成本要低一些。
位运算、布隆过滤器和 LRU Cache
- 有哪些常见的高级位运算操作?
- 位运算在搜索、分治中的高级应用
- 布隆过滤器在工业界有哪些应用?
- 常考面试题目精讲
对于一个很长的二进制向量和一系列随机函数,布隆过滤器可以用于检索一个元素是否在一个集合中。
排序算法
- 各种常见排序的比较
- 各种排序算法的模版是什么?
- 高级排序常考面试题精讲
大部分编程语言都提供了排序函数,在平时项目中也经常会遇到排序,因此需要了解它们之间的区别。
字符串算法
- 常见的高级字符串算法有哪些?
- 什么是字符串匹配算法?
- 常考面试题目精讲 > 有一个字符串 “BBC ABCDAB ABCDABCDABDE”,如何知道里面是否包含另一个字符串 “ABCDABD” 呢?
声明:本站所有资料均来源于网络以及用户发布,如对资源有争议请联系微信客服我们可以安排下架!