已解答
中等
相关标签
相关企业
给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。
class Solution(object):
def permute(self, nums):
"""
:type nums: Listint
:rtype: ListList\[int]
"""
rtrt=\[\]
if len(nums)==0:
return \[\]
if len(nums)==1:
return nums
rt = self.permute(nums1:)
for sublist in rt:
for index,sub in enumerate(sublist):
rtrt.append(sublist:index+ nums\[0] +sublistindex:)
rtrt.append(sublist+nums\[0])
return rtrt
两种递归关系
一种是只用n-1的全排列,n可以放到n-1全排列序列的任意一个位置
第二种是 使用n次n-1的全排列,然后遍历一遍数组,每次都把遍历的数组的数放到n-1全排列的的最前面
我们使用方法一
这个最少的世界复杂度都是阶乘,最终返回的结果的数目也是阶乘的级别的