1. 回顾数据结构&算法
让我们重新回顾一下数据结构的整体分类和算法,并自己内心说明各个数据结构的特性,回忆算法的思想和代码模板。
1.1 一维数据结构
基础的有:数组(查询快,插入操作较慢,需要重新分配空间)、链表(查询慢,插入比数组快)
高级的有:栈stack(先进后出)、队列queue(先进先出)、双端队列deque(适用于FIFO和LIFO两个场景)、集合Set(无重复元素集合)、映射map(hash 或者 map)、etc
1.2 二维数据结构
基础的有:树tree、图Graph(链表是特殊化的树,树是特殊化的图)
高级的有:二叉搜索树binary search tree (red-black tree,AVL)、堆heap、并查集disjoint Set、字典树 Trie、etc
1.3 特殊
位运算 bitwise、布隆过滤器 BloomFilter
LRU Cache
注意:在脑海中回忆数据结构的特点
1.4 算法
- if-else,switch ——> branch
- for,while loop ——> Iteration
- 递归 Recursion(Divide & Conquer,backtrace)
- 搜索Search:深度优先搜索 Depth first Search, 广度优先搜索Breadth first search , A*,etc
- 动态规划 Dynamic Programming
- 二分查找 binary Search
- 贪心算法 Greedy
- 数学 Math,几何 Geometry
注意:在脑海中回忆上面的各种算法思想和代码模板