给定一个没有重复数字的序列,返回其所有可能的全排列。
示例:
输入: [1,2,3] 输出: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ]
思路:使用dfs搜索
class Solution(object):
def permute(self, nums):
self.ans=[]
tmp=[]
self.dfs(nums,tmp)
return self.ans
def dfs(self,Nums,sub):
if len(sub)==len(Nums):
self.ans.append(sub[:])
for m in Nums:
if m in sub:
continue
sub.append(m)
self.dfs(Nums,sub)
sub.remove(m)