剑指offer------回溯法

来源:互联网 发布:mac双系统移除win8后 编辑:程序博客网 时间:2024/06/06 12:33

适用的问题:

由多个步骤组成的问题,并且每个步骤都有多个选项。当我们在某一步选择了其中一个选项时,就进入下一步,然后又面临新的选项。我们就这样重复选择,直至到达最后的状态。适合用递归实现代码。

实现步骤:

问题的所有选项可以用树状结构表示,在某一步有n个可能的选项,那么该步骤可以看成是树状结构中的一个节点,每个选项看成树中节点连接线,经过这些连接线到达该节点的n个子节点,树的叶节点对应着终结状态。如果从根节点到该叶节点满足题目的约束条件,那么就找到了一个可行的解决方案;如果该叶节点的状态不满足约束条件,那么只好回溯到它的上一个节点再尝试其他的选项;如果上一个节点的所有可能的选项都已经试过,并且不能满足题目的约束条件,则再次回溯到上一个节点。如果所有节点的所有选项都已经尝试过,仍然不能到达满足约束条件的终结状态,则该问题无解。

原创粉丝点击