全排列--Python实现
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。
def permute(nums):
track,self.res=[],[]
self.backtrack(nums,track)
return self.res
# 路径:记录在 track 中
#选择列表:nums 中不存在于 track 的那些元素
#结束条件:nums 中的元素全都在 track 中出现
def backtrack(self,nums,track):
if len(track)==len(nums):
self.res.append(track[:])
return
for i in range(len(nums)):
if nums[i] in track:continue
track.append(nums[i])
self.backtrack(nums,track)
track.pop()