This commit is contained in:
krahets
2023-11-09 05:13:48 +08:00
parent 9701430089
commit 0105644232
83 changed files with 516 additions and 509 deletions

View File

@@ -32,7 +32,7 @@ comments: true
如图 13-5 所示,我们可以将搜索过程展开成一个递归树,树中的每个节点代表当前状态 `state` 。从根节点开始,经过三轮选择后到达叶节点,每个叶节点都对应一个排列。
![全排列的递归树](permutations_problem.assets/permutations_i.png)
![全排列的递归树](permutations_problem.assets/permutations_i.png){ class="animation-figure" }
<p align="center"> 图 13-5 &nbsp; 全排列的递归树 </p>
@@ -45,7 +45,7 @@ comments: true
如图 13-6 所示,假设我们第一轮选择 1 ,第二轮选择 3 ,第三轮选择 2 ,则需要在第二轮剪掉元素 1 的分支,在第三轮剪掉元素 1 和元素 3 的分支。
![全排列剪枝示例](permutations_problem.assets/permutations_i_pruning.png)
![全排列剪枝示例](permutations_problem.assets/permutations_i_pruning.png){ class="animation-figure" }
<p align="center"> 图 13-6 &nbsp; 全排列剪枝示例 </p>
@@ -481,7 +481,7 @@ comments: true
如图 13-7 所示,上述方法生成的排列有一半都是重复的。
![重复排列](permutations_problem.assets/permutations_ii.png)
![重复排列](permutations_problem.assets/permutations_ii.png){ class="animation-figure" }
<p align="center"> 图 13-7 &nbsp; 重复排列 </p>
@@ -495,7 +495,7 @@ comments: true
本质上看,**我们的目标是在某一轮选择中,保证多个相等的元素仅被选择一次**。
![重复排列剪枝](permutations_problem.assets/permutations_ii_pruning.png)
![重复排列剪枝](permutations_problem.assets/permutations_ii_pruning.png){ class="animation-figure" }
<p align="center"> 图 13-8 &nbsp; 重复排列剪枝 </p>
@@ -955,6 +955,6 @@ comments: true
图 13-9 展示了两个剪枝条件的生效范围。注意,树中的每个节点代表一个选择,从根节点到叶节点的路径上的各个节点构成一个排列。
![两种剪枝条件的作用范围](permutations_problem.assets/permutations_ii_pruning_summary.png)
![两种剪枝条件的作用范围](permutations_problem.assets/permutations_ii_pruning_summary.png){ class="animation-figure" }
<p align="center"> 图 13-9 &nbsp; 两种剪枝条件的作用范围 </p>