### * **最大误区: 只做一遍** * 拆分知识点 * 刻意练习 => 过遍数 * 五遍刷题法则 * 弱项,缺陷 * 不舒服,不爽是成长的点 * 寻求反馈 ### 所有复杂的算法本质是找重复的单元是什么 --- ### 数据结构 * 一维 * 基础 * 数组 array * 链表 linked list * 高级 * 栈 stack * 队列 queue * 双端队列 deque * 集合 set * 映射 hashmap * 二维 * 基础 * 树 tree * 图 graph * 特殊 * 二叉搜索树 binary search tree * 堆 heap * 字典树 trie * 并查集 disjoint set * 特殊 * 位运算 bitwise * 布隆过滤器 bloom filter * LRU cache ### 算法 * if-else 逻辑切换 * loop 循环 * recursive 递归 -> 自己调用自己, 处理不当容易栈溢出 * Divide & conquer 分治 * backtrace 回溯 * 搜索 * DFS(deep first search) 深度优先搜索 * BFS(breadth first search) 广度优先搜索 * A* 启发式搜索 * 动态规划 DP(Dynamic Programming) * 二分查找 binary search * 贪心 greedy * 数学 Math, 几何 Geometry ### 反馈 * 主动式(自己寻找) * 高手代码(LeetCode, GitHub) * 第一视角直播 * 被动式 * 高手给你指点 * code review ### 切题四件套 遇题四步思考方式 * Clarification 明确题目 * Possible Solutions 所有可能解题方法,分析时间/空间复杂度, 找最优化 * Coding 编码 * Test Cases 测试用例 ### 五遍做题法 #### 第一遍 * 5分钟 读题+思考 * 直接看解法: 多种解法, 比较优劣 * 背诵&默写好的写法 #### 第二遍 * 马上自己写, LeetCode提交 * 多种解法比较, 体会, 优化 #### 第三遍 * 过了24h之后再做一遍 * 不同解法熟练程度的专项练习 #### 第四遍 * 过了一周之后再训练 #### 第五遍 * 面试前一周康复性训练 --- #### 备注 * git提交作业方法 * https://shimo.im/docs/9ty8pjk6ckxGrkQt/read * 脑图 * https://naotu.baidu.com/home * 入学考试 * https://exam.kaoshixing.com/exam/wrong_topic
所有复杂的算法本质是找重复的单元是什么
数据结构
算法
反馈
切题四件套 遇题四步思考方式
五遍做题法
第一遍
第二遍
第三遍
第四遍
第五遍
备注