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

注意:在脑海中回忆上面的各种算法思想和代码模板