#775. 全排列问题(回溯法)
全排列问题(回溯法)
题目描述
生成 1~n 的所有全排列。
输入格式
一个整数 n(例如 n = 3)。
输出格式
所有可能的排列组合(例如 n = 3时输出 1 2 3、1 3 2、2 1 3、2 3 1、3 1 2、3 2 1)。
样例
输入样例 1
3
输出样例 1
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1
输入样例 2
1
输出样例 2
1
输入样例 3
2
输出样例 3
1 2
2 1
提示
解题思路:全排列问题要求生成 1~n 的所有可能排列顺序。回溯法的核心思想是通过递归+状态回退来枚举所有可能性: 1.递归选择:从剩余未使用的数字中选择一个,添加到当前排列中。 2.状态标记:使用一个布尔数组 used记录哪些数字已经被使用过,避免重复选择。3. 回溯撤销:当递归到最深层(排列完成)后,撤销当前选择(将数字标记为未使用),以便尝试其他可能性。