《异类:不一样的成功启示录》
精通一个领域
- Chunk it up 切碎知识点
- Deliberate Practicing 刻意练习
- Feedback 反馈
分解数据结构和算法
数据结构(了解每个数据结构的原理和代码框架)
- 一维:
- 基础:数组 array (string), 链表 linked list
- 高级:栈 stack, 队列 queue, 双端队列 deque, 集合 set, 映射 map (hash or map), etc
- 二维:
- 基础:树 tree,图 graph
- 高级:二叉搜索树 binary search tree (red-black, AVL), 堆 heap,并查集 disjoint set, 字典树 Trie, etc
- 特殊:
- 位运算 Bitwise, 布隆过滤器 BloomFilter
- LRU Cache
算法(在头脑中回忆上面每种算法的思想和代码模板)
- 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
反馈
- 及时反馈
- 主动型反馈
- 高手代码(Github, LeetCode, etc.)
- 被动式反馈
- code review
切题四件套
- Clarification
- Possible solutions
- compare (time/space)
- optimal (加强)
- Coding
- Test cases
五步刷题法
- 刷题第一遍
- 5 分钟:读题 + 思考
- 直接看解法:注意!多解法,比较解法优劣
- 背诵、默写好的解法
- 刷题第二遍
- 马上自己写 -> LeetCode 提交
- 多种解法比较、体会 -> 优化
- 刷题第三遍
- 过了一天后,再重复做题
- 不同解法的熟练程度 -> 专项练习
- 刷题第四遍
- 过了一周:反复回来练习相同题目
- 刷题第五遍
- 面试前一周恢复性训练
网友评论