1. 数据结构(Data Structure)

..note::
  • 写代码时有必要考虑复杂度(空间及时间)。
  • 主定理(Master Theorem).
  • 开始时间:2020-06-02
  • 更新时间:2020-06-02

1.1. 方法论

  1. 坚持、刻意练习。
  2. 练习缺陷(会的总会,不会总不会)、多练自己薄弱的、不熟悉的。
  3. 刚开始coding是不爽、不舒服、枯燥的。
  4. 练题平台:leetcode(力扣) ,可以看国外版的网站Discuss(有世界范围的大神解题思路,你说看不看……)
    • 举个力扣的 例子
    • 一题多解(最优(时间空间小)解法)
    • 寻求反馈(成长的关键):leetcode的solution和discussion.
  5. 现在就开始动手!

1.2. 数据结构

  1. 两大类:线性结构(顺序表、链表、栈、队列)和非线性结构(树、图、二(多)维数据、广义表)

1.3. Array

1.4. Stack and Queue

1.5. PriorityQueue

1.6. LinkedList(single/double)

1.7. Tree/Binary Tree

1.7.1. 树

1.7.2. 二叉树

  • 二叉搜索树:左子树小于根结点,右子树大于根结点。

1.8. HashTable

1.9. Disjoint Set

1.10. Trie

1.11. BloomFilter

1.12. LRU Cache

2. 算法(Algorithm)

2.1. General Coding

2.2. In-order/pre-order/Post-order traversal

2.3. Greedy

2.4. Recursion/Backtrace

2.7. Divide and Conquer

2.8. Dynamic Programming

2.10. Graph