给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。
示例 1:
输入:nums = [1,2,3]
输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]
该代码中主要的关键就是使用了递归和enumerate
enumerate功能如下:
对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值
class Solution:
def permute(self, nums: List[int]) -> List[List[int]]:
length = len(nums)
if length <= 1:
return [nums]
answer = []
for i,num in enumerate(nums):
n = nums[:i]+ nums[i+1:]
for y in self.permute(n):
answer.append([num] + y)
return answer
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/permutations
代码参考来源:
https://www.bilibili.com/video/BV1hb411i7fm?spm_id_from=333.999.0.0