如何求给定数组的全排列?...例如,数组: [1,2,3]
全排列: {[1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]}
对于这种找出所有可能的题解的题解基本都会采用回溯法...整个回溯查找的过程就是一颗决策树的深度遍历过程,期间主要涉及到以下几种操作:
选择: 每个树节点的深度遍历,都是一次选择过程,如绿色箭头部分
回溯: 每次选择后,不管结果是否是期望的,都要返回到上一个状态...,如红色箭头操作
剪枝: 对不满足遍历条件的节点,不进行深度遍历,如红叉部分
路径: 遍历经过的节点叫做路径,每个能达到最深叶子节点的路径就是期望的结果值
回溯算法实现的伪代码如下
backtrack...,从而减少状态空间树节点的生成.