image.png

递归

步骤:

  • 终止条件
  • 每次处理过程(递归公式)
  • 返回值

    迭代

    滚动数组

    滑动窗口

    岛屿问题

  • dfs:边界条件

  • 标记访问过的位置

    双指针

  • 必须排好序

    快慢指针

    区间合并

    循环排序

    链表反转

    树dfs /bfs

    双堆类型

    子集类型

    二分查找

    前K个

    多路归并

    0/1背包

    拓扑排序

    动态规划

  • 状态转移方程

    场景:存在最优子结构

  • 回溯

    • 定义:回溯是一种通过穷举所有可能情况来找到所有解的算法。如果一个候选解最后被发现并不是可行解,回溯算法会舍弃它,并在前面的一些步骤做出一些修改,并重新尝试找到可行解
    • 画树状图
  • 自上而下
  • 自下而上