回溯算法

回溯算法

模板

List result;
def backtrack(路径, 选择列表):
    if 满足结束条件:
        if 是所求答案 
        	result.add(路径)
        return
    for 选择 in 选择列表:
        做选择
        backtrack(路径, 选择列表)
        撤销选择

模板转载整理自labuladong

经典

  • N皇后

排列

  • 全排列
  • 全排列II

子集

  • 子集
  • 子集II

组合

  • 组合
  • 组合总和
  • 组合总和II
  • 组合总和III

DFS(树)

  • 路径总和
  • 路径总和II
  • 路径总和III
面对我们的问题可以建立一个N叉决策树,其中树的深度就是我们的决策深度

你可能感兴趣的:(LeetCode总结,回溯算法)