当前为游客只读模式。登录后可提交代码判题并保存草稿与进度。

练题计划 · 算法机考精选 15 题

全排列

中等permute()
时间限制 2000 ms内存限制 128 MB复杂度要求 时间 O(n·n!),空间 O(n)

全排列

给定一个不含重复数字的整数数组 nums,返回其所有可能的全排列。可以按任意顺序返回答案。

约定

  • 数组中所有元素互不相同。
  • 返回的排列之间顺序任意,但每个排列内部是一个确定的序列。

输入

  • nums:整数数组,1 ≤ nums.length ≤ 6,元素取值 -10 ~ 10

输出

所有全排列组成的二维数组。

示例一

输入:

nums = [1,2,3]

输出:

[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]

示例二

输入:

nums = [0,1]

输出:

[[0,1],[1,0]]

示例三

输入:

nums = [1]

输出:

[[1]]

复杂度要求

  • 时间复杂度:O(n·n!),共 n! 个排列,每个长度 n
  • 空间复杂度:O(n),递归栈与路径
Loading...

输入

[[1,2,3]]

预期输出

[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]
自定义用例