class Solution:
def permute(self, nums: List[int]) -> List[List[int]]:
self.res = [] #全局结果
tmpList = [] #工作数组
self.backtrack(nums, tmpList)
return self.res
def backtrack(self, nums, tmpList):
if len(tmpList) == len(nums): #递归出口
self.res.append(list(tmpList))
for i in nums:
if i in tmpList: #去重
continue
self.backtrack(nums, tmpList + [i])
2020.3.26
class Solution:
def permute(self, nums: List[int]) -> List[List[int]]:
def dfs(tmp):
if len(tmp) == n:
res.append(list(tmp))
else:
for num in nums:
if num in tmp:
continue
dfs(tmp + [num])
n = len(nums)
res = []
dfs([])
return res