全排列(Python3)

題目描述:給定一個沒有重複數字的序列,返回其所有可能的全排列。

示例:
輸入: [1,2,3]
輸出:
[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]

解題思路:
全排列思路.png

代碼如下:

class Solution:
    def permute(self, nums: List[int]) -> List[List[int]]:
        self.length = len(nums)
        self.re = []
        self.sub_permute(nums,[])
        return self.re
    
    def sub_permute(self,nums,temp):
        if len(temp) == self.length:
            self.re.append(temp)
        else:
            for i in nums:
                self.sub_permute(nums[:nums.index(i)]+nums[nums.index(i)+1:],temp+[i])

時間與空間複雜度:
image.png

題目來源:力扣(LeetCode)
參考博客:https://blog.csdn.net/weixin_41958153/article/details/81015423

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章