树形问题
lc17
递归调用的一个重要特征–要返回
回溯法
回溯法 是依赖递归的
(要保证回去,递归本身会回去,但有些状态需要手动回去,比如全排列问题中使用辅助空间used)
回溯法是暴力解法的一个主要实现手段
动态规划就是在回溯法基础上实现的;
还可以通过某些剪枝不用遍历完所有情况。
lc93,131
剪枝
lc77
二维平面
lc79
floodfill问题,一类经典问题
本质是深度优先的遍历
回溯法是经典人工智能的基础
lc51
N皇后问题:
可以定义一个Try(x,y)函数判断棋盘(x,y)处是否可以放皇后:
(1)不在同一列
(2)不在对角线上,即有两棋子坐标分别为(X1,Y1),(X2,Y2),则|X1-X2|!=|Y1-Y2|