题目内容
给定一个没有重复数字的序列,返回其所有可能的全排列。
https://leetcode-cn.com/problems/permutations/
Given a collection of distinct integers, return all possible permutations.
Example:
Input: [1,2,3]
Output:
[
[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):
"""
:type nums: List[int]
:rtype: List[List[int]]
"""
path,res=[],[]
self.dfs(nums,path,res)
return res
def dfs(self,nums,path,res):
if not nums:
res.append(path)
return
else:
for i in range(len(nums)):
self.dfs(nums[:i]+nums[i+1:],path+[nums[i]],res)