回溯算法需要设计的状态变量
其中used 这个变量及其重要,容易被忽略。
整理一下,全排列问题需要的状态变量有:
整型变量 index :表示当前需要确定的下标位置;
布尔数组 used :记录某个下标的元素是否使用过;
列表 path:记录从根结点到任意结点的路径。
index变量
表示当前执行到哪个状态了,哪个地方了
path变量
列表 path 这个变量很重要,理解它的作用和在深度优先遍历的过程中变化的规律非常关键,我们通过一个动画向大家展示 path 是如何在 深度优先遍历 的过程中。请大家重点理解:深度优先遍历有回退的过程,从深层结点回到浅层结点的过程中,为了得到另一个全排列,path 变量需要将末尾元素移出。