递归和回溯_leetcode46-经典的排列问题

class Solution(object):
def permute(self, nums):
"""
:type nums: List[int]
:rtype: List[List[int]]
"""
pass

self.res =[]

length = len(nums)

self.used = [False for i in range(length)]

self.generatePermutation(nums,0,[])

# print self.res

return self.res



# visit[] 用于分支去重
def generatePermutation(self,nums,index,p):


if index == len(nums):

self.res.append(p[0:])
return


for i in range(len(nums)):
if not self.used[i]:

p.append(nums[i])
self.used[i] = True
self.generatePermutation(nums,index+1,p)
self.used[i] = False
p.pop()



s = Solution()

n = [1,2,3]

s.permute(n)

猜你喜欢

转载自www.cnblogs.com/lux-ace/p/10556944.html
今日推荐