dfs的解决问题的思路:
- 先解决当下该如何做。
- 然后再考虑下一步如何做。
问题:
- 输入一个数n,输出1~n的全排列。
分析:
形象化问题:
假如有编号为1,2,3的三张扑克牌和编号为1,2,3的三个盒子。
现在需要将3张扑克牌分别放到3个盒子里,每个盒子只能放一张。

- 约定一个顺序:每当需要输出一个数时,总是先输出1,然后是2,其次是3。
代码实现:
1 |
|
总结:
- dfs—先解决第一步怎么办,第二步就是重复第一步即可。
形象化问题:
假如有编号为1,2,3的三张扑克牌和编号为1,2,3的三个盒子。
现在需要将3张扑克牌分别放到3个盒子里,每个盒子只能放一张。

1 | #include <stdio.h> |
微信支付
支付宝