给定一个没有重复数字的序列,返回其所有可能的全排列。
示例:
输入: [1,2,3]
输出:
[
[1,2,3],
[1,3,2],
[2,1,3],
[2,3,1],
[3,1,2],
[3,2,1]
]
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/permutations
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
回溯
class Solution:
def permute(self, nums: List[int]) -> List[List[int]]:
def single(num,one):
if not num:
res.append(one)
return
for i in range(len(num)):
single(num[:i]+ num[i+1:],one+[num[i]])
#将运算放入single(这里),可以在递归结束后回到之前操作。即回溯。
res = []
single(nums,[])
return res