1.数据结构与算法总览

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 提交
    • 多种解法比较、体会 -> 优化!
  • 第三遍
    • 过了一天后, 在重复做题
    • 不同解法的熟练程度 -> 专项练习
  • 第四遍
    • 过了一周: 反复回来练习相同题目
  • 第五遍
    • 面试前一周恢复性训练

脑图