46. 全排列
给定一个 没有重复 数字的序列,返回其所有可能的全排列。
示例:
输入: [1,2,3]
输出:
[
[1,2,3],
[1,3,2],
[2,1,3],
[2,3,1],
[3,1,2],
[3,2,1]
]
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/permutations
class Solution:
def permute(self, nums: List[int]) -> List[List[int]]:
def backsort(flag=-1):
if flag == n:
res.append(nums[:])
for i in range(flag,n):
nums[flag],nums[i] = nums[i],nums[flag]
backsort(flag+1)
nums[flag],nums[i] = nums[i],nums[flag]
return
flag = 0
res = []
n = len(nums)
backsort(flag)
return res