给定一个没有重复数字的序列,返回其所有可能的全排列。
示例:
输入: [1,2,3]
输出:
[
[1,2,3],
[1,3,2],
[2,1,3],
[2,3,1],
[3,1,2],
[3,2,1]
]
class Solution:
def permute(self, nums: List[int]) -> List[List[int]]:
results = []
len_n = len(nums)
def backtrack(my_nums, use_nums):
if len(my_nums) == len_n:
results.append(my_nums)
return
for i in range(len(use_nums)):
x = my_nums.copy()
x.append(use_nums[i])
backtrack(x, use_nums[:i]+use_nums[i+1:]) # 不包含i元素
backtrack([], nums)
return results
参考:https://www.cnblogs.com/watch-fly/p/leetcode_46_watchfly.html
来源:oschina
链接:https://my.oschina.net/u/4399215/blog/3435803