1.数据结构与算法总览
精通一个领域
- 切碎知识点
- 刻意练习
- 反馈
数据结构
-
一维:
- 基础: 数组(array)、(string)、链表(linked list)
- 高级: 栈(stack)、队列(queue)、双端队列(deque)、集合(set)、映射(hash or map)
-
二维:
- 基础: 树(tree)、图(graph)
- 高级: 二叉搜索树 (red-black tree, AVL)
-
特殊:
- 位运算、布隆过滤器
- LRU cache
算法
- if-else switch -> branch
- for while loop -> iteration
- 递归 Recursion (Divide & Conquer Backtrace)
- 搜索Search: 深度优先搜索 Depth first search, 广度优先搜索 Breadth first search
- 动态规划 Dynamic Programming
- 二分查找 Binary Search
- 贪心 Greedy
- 数学 Math, 几何 Geometry
切题四件套
- Clarification 澄清
- possible solutions 可能的解决办法
- compare (time/space) 比较(时间/空间)
- optimal (加强)
- Coding (多写)
- Test cases (测试用例)
刷题方法:
- 第一遍
- 5分钟: 读题 + 思考
- 直接看解法: 注意! 多解法, 比较解法优劣
- 背诵、默写好的解法
- 第二遍
- 马上自己写 -> leetCode 提交
- 多种解法比较、体会 -> 优化!
- 第三遍
- 过了一天后, 在重复做题
- 不同解法的熟练程度 -> 专项练习
- 第四遍
- 过了一周: 反复回来练习相同题目
- 第五遍
- 面试前一周恢复性训练