首页 > 技术文章 > 回溯算法

lidan-prime 2018-05-18 11:19 原文

回溯算法

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

比如全排列问题,{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.





 

 

 

 

推荐阅读