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