面试算法之递归与回溯

树形问题

lc17

递归调用的一个重要特征–要返回

回溯法

回溯法 是依赖递归的
(要保证回去,递归本身会回去,但有些状态需要手动回去,比如全排列问题中使用辅助空间used)

回溯法是暴力解法的一个主要实现手段
动态规划就是在回溯法基础上实现的;
还可以通过某些剪枝不用遍历完所有情况。

lc93,131

剪枝

lc77

二维平面

lc79

floodfill问题,一类经典问题

本质是深度优先的遍历

回溯法是经典人工智能的基础

lc51

N皇后问题:
可以定义一个Try(x,y)函数判断棋盘(x,y)处是否可以放皇后:

(1)不在同一列

(2)不在对角线上,即有两棋子坐标分别为(X1,Y1),(X2,Y2),则|X1-X2|!=|Y1-Y2|

显示 Gitment 评论