算法思想 - 回溯法

1,回溯法

1)遵循深度优先搜索法,类似枚举的试探法,在搜索过程中寻找问题的解,发现不满足时,就回溯,后退一步,满足回溯条件的某个状态点,称为回溯点

2,代码示例

1)组合总和
每次递归target - temp

算法思想 - 回溯法_第1张图片
image.png

算法思想 - 回溯法_第2张图片
image.png

2)数字组合,手机号码盘
算法思想 - 回溯法_第3张图片
image.png

3)括号生成
算法思想 - 回溯法_第4张图片
image.png

4)全排列
算法思想 - 回溯法_第5张图片
image.png

5)N皇后问题
算法思想 - 回溯法_第6张图片
image.png

算法思想 - 回溯法_第7张图片
image.png

3,回溯法与深度优先搜索的对比

1)深度优先搜索:已经访问的节点不会再次访问,所有节点仅访问一次。
2)回溯法:已经访问的节点可能再次访问,也可能存在没有访问的节点。

你可能感兴趣的:(算法思想 - 回溯法)