【回溯】初探回溯

一、什么是回溯法?

回溯法又称为试探法,但当探索到某一步时,发现原先选择达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法。
在这里插入图片描述

回溯框架

解决一个回溯问题的过程,实际上是一个树状图的遍历过程。只需要思考 3 3 个问题:

  • 路径:已经做出的选择。
  • 选择列表:当前可以做的选择。
  • 结束条件:到达树的底层,无法再做选择的条件。
result = []
void backtrack(路径, 选择列表) {
  if (满足结束条件) {
	result.add(路径)return}
    
  for () {
	做选择
 	backtrack(路径, 选择列表)
 	撤销选择
  }
}
发布了714 篇原创文章 · 获赞 199 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/qq_43539599/article/details/104126324
今日推荐