欢迎24级新生

2191. Permutations (Medium)

给定一个无重复数字的整数数组,求其所有的排列方式。

输入

输入是一个一维整数数组

输出

输出是一个二维数组,表示输入数组的所有排列方式

样例

标准输入 复制文本
 [1,2,3]
标准输出 复制文本
 [[1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]

提示

怎样输出所有的排列方式呢?对于每一个当前位置 i,我们可以将其于之后的任意位置交换,然后继续处理位置 i+1,直到处理到最后一位。为了防止我们每此遍历时都要新建一个子数组储存位置 i 之前已经交换好的数字,我们可以利用回溯法,只对原数组进行修改,在递归完成后再修改回来。 我们以样例[1,2,3]为例,按照这种方法,我们输出的数组顺序为[[1,2,3], [1,3,2], [2,1,3], [2,3,1],[3,1,2], [3,2,1]],可以看到所有的排列在这个算法中都被考虑到了

登录以提交代码。
单点时限 1 秒
内存限制 128 MB
提交 0
通过 0