价格: 88 学币
预习 10 周如何攻破算法面试?
“工欲善其事,必先利其器”,在开启训练营之前,看看我们要做哪些“热身运动”。
数组、链表、跳表
数组和链表原理讲解
面试热点数据结构跳表剖析
常考面试题目精讲
数组、链表属于线性表结构,所谓线性表,就是数据排成一条线一样的结构。
栈、队列、优先队列、双端队列
栈和队列原理讲解
面试热点优先队列、双端队列剖析
常考面试题目精讲
我们熟知栈是“先入后出”,队列是“先入先出”,那这些数据结构是如何应用的呢?
哈希表、映射、集合
哈希表、映射、集合的原理讲解
哈希表常见实践案例
常考面试题目精讲
在建造哈希表时不仅要设定一个“好”的哈希函数,而且要设定一种处理冲突的方法。
树、二叉树、二叉搜索树
从链表到树的发展,你可以发现链表就是特殊化的树,而树又是特殊化的图。
堆、二叉堆和图
堆是可以迅速找到一堆数中的最大或者最小值的数据结构。
递归、分治和回溯
树的面试题解法一般都是递归,熟练使用递归对于培养程序化思维是非常有帮助的。
深度、广度优先搜索
给你一个用户,如何找出这个用户所有的一度、二度、三度好友关系呢?
贪心算法与二分查找
贪心算法与动态规划的不同在于,它对每个子问题的解决方案都能作出选择,并且不能回退。
动态规划
并查集、字典树、红黑树和 AVL 树
AVL 树是一种高度平衡的二叉树,所以查找效率非常高也比较复杂;而红黑树只做到近似平衡,所以维护成本要低一些。
位运算、布隆过滤器和 LRU Cache
对于一个很长的二进制向量和一系列随机函数,布隆过滤器可以用于检索一个元素是否在一个集合中。
排序算法
大部分编程语言都提供了排序函数,在平时项目中也经常会遇到排序,因此需要了解它们之间的区别。
字符串算法