算法训练营01-学习总览

文章目录

学习笔记

  1. chunk it up 切碎知识点
  2. practice it 刻意练习
  3. feedback 反馈: 分为主动反馈和被动反馈

从大到小掌握,
将任何领域学习的治理学习抽象成一个语法树,了解最基本的枝干,然后将具体的知识点再挂到这些枝干上面,在学习的过程中,每学习一个知识点,都要知道他应该被挂到哪个枝干上面。

数据结构分类,要对着脑图讲出特点

  1. 一维数据结构
    1. 基础型:数组,链表
    2. 高级:stack,queue,dequeue,set,map
  2. 二维数据结构
    1. 基础: tree,graph
    2. 高级:binary search tree, red-black tree,AVL, heap(堆),并查集(disjoint set), 字典树Trie,
  3. 特殊的数据结构
    1. 位运算Bitwise,布隆过滤器BloomFilter
    2. LRU Cache

算法分类

  1. 基础分类
    1. if-else,switch-branch
    2. for loop
    3. recursion 递归
  2. 高级分类
    1. 搜索search: dfs(deep first search),bfs(bread first search),A*,
    2. 动态规划 Dynamic Programming
    3. 二分查找 Binary Search
    4. 贪心算法 Greedy
    5. 数学Math,几何Geomety

在头脑中熟记没种算法的思想和代码模板,这个要TODO来看

根本是找到重复单元

数据结构脑图
算法脑图

一遍肯定不够,要多次进行专项练习

  1. 五毒神掌
  2. 练习缺陷,弱点的地方

切题四件套

  1. clarification 确认问题边界
  2. possible solutions 想到的所有的可能的想法过一遍,比较对应的时间,空间复杂度,找出最优的方法
  3. 编写代码
  4. 进行测试用例

五毒神掌,一个题目做5遍

  1. 第一遍,5分钟思考读题, 没有思路的话, 直接看解法(比较不同解法的优劣), 背诵和默写所有的解法,参考国际站来看
  2. 立刻写代码,知道leetcode提交直到通过
  3. 24小时之后,重新做一遍,如果有不熟练的进行专项练习
  4. 一周之后重新练习,如果有不熟练的进行专项练习
  5. 面试前一周进行练习学习

代码的效率的提升方式

  1. 提升数据维度
  2. 空间换时间

你可能感兴趣的:(算法)