先想清楚本题所有可能情况:共n! 种,高中学过的排列:考虑总共n个位置,第一个位置填n个,第二个位置就只能填n−1 个 , 以此类推,结合分步相乘得到:
n×(n−1)×(n−2)×...×1=n!我们回溯的过程其实和这个计算过程如出一辙 : 考虑三个位置可以填,从左往右逐一填写,每次考虑这个位置可以填哪些数。
例如1 2 3 , 我们用一个演示视频来展示搜索回溯的过程👇
给定一个不含重复数字的整数数组 nums,请返回其所有可能的全排列。
为了便于判题,请按照字典序从小到大的顺序输出所有排列。
输入 n 个整数,表示数组 nums 中的元素。
输出数组 nums 的所有全排列。
每个排列占一行,每行输出 n 个整数。
同一行中相邻两个整数之间用一个空格隔开。
所有排列按照字典序从小到大的顺序输出。
1 2 3
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1
0 1
0 1
1 0
1
1
1<=n<=6
−10<=nums[i]<=10
nums 中的所有整数互不相同。