题目https://leetcode.cn/problems/permutations/
答案
class Solution:
def permute(self, nums: List[int]) -> List[List[int]]:
self.path = []
self.paths = []
used = [False]*len(nums)
def dfs(nums,used):
if len(self.path)==len(nums):
self.paths.append(self.path[:])
return
for i in range(0,len(nums)):
if used[i] == True:
continue
used[i] = True
self.path.append(nums[i])
dfs(nums,used)
self.path.pop()
used[i] = False
dfs(nums,used)
return self.paths
或者
class Solution:
def permute(self, nums: List[int]) -> List[List[int]]:
path = []
paths = []
used = [False]*len(nums)
def dfs():
if len(nums) == len(path):
paths.append(path[:])
return
for i in range(0,len(nums)):
if used[i] == True:
continue
used[i] = True
path.append(nums[i])
dfs()
path.pop()
used[i] = False
dfs()
return paths