# 暴力dfs,只是为了熟悉python语法...
class Solution:
__n = 0
flag = []
res = []
def permute(self, nums: list) -> list:
self.__n = len(nums)
self.res = []
self.flag = [False] * self.__n
ans = []
self.dfs(nums, ans, 0)
return self.res
def dfs(self, nums: list, ans: list, index: int):
# self.printList(ans)
# print('%d %d' % (index,self.__n))
# print()
if index >= self.__n:
self.res.append(list.copy(ans)) # 这里要加copy,不加的话
return # 一直是添加同一个list导致最后为空
for i in range(self.__n):
if self.flag[i] == False:
ans.append(nums[i])
self.flag[i] = True
self.dfs(nums, ans, index + 1)
ans.pop()
self.flag[i] = False
def p(self):
for s in self.res:
for a in s:
print('%d ' % a, end = '')
print()
def printList(self, List):
for x in List:
print('%d' % x, end = '')
print()
LeetCode 46 全排列 Python
猜你喜欢
转载自blog.csdn.net/TIMELIMITE/article/details/90080927
今日推荐
周排行