回溯算法

Posted lidan-prime

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了回溯算法相关的知识,希望对你有一定的参考价值。

回溯算法

回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。

比如全排列问题,{1,2,3}全排列结果,则考虑选取一个数当做当前状态节点(第一位),然后对其进行扩展,扩展完成后返回到该节点,进行状态更换再扩展。

 技术分享图片

 

单词搜索问题:

board =
[
  [‘A‘,‘B‘,‘C‘,‘E‘],
  [‘S‘,‘F‘,‘C‘,‘S‘],
  [‘A‘,‘D‘,‘E‘,‘E‘]
]

给定 word = "ABCCED", 返回 true.
给定 word = "SEE", 返回 true.
给定 word = "ABCB", 返回 false.

技术分享图片
技术分享图片


 

 

 

 







以上是关于回溯算法的主要内容,如果未能解决你的问题,请参考以下文章

回溯算法及题目

找到并回答后如何停止回溯算法?

回溯算法

回溯0--递归回溯算法框架

回溯算法

纠正用于回溯图着色算法的 Java 递归代码