leetcode46 全排序

第一种思路:  回溯法

class Solution:
    def permute(self, nums):
        """
        :type nums: List[int]
        :rtype: List[List[int]]
        """
        r =  []
        self.tt(0, nums, r)
        return r
    def tt(self, i, nums, result):
        if i < len(nums):
            self.tt(i+1, nums,result)
            if i == len(nums)-1:
                result.append(nums.copy())
            j = i + 1
            while j < len(nums):
                self.swap(nums,i,j)
                self.tt(i+1,nums,  result)
                self.swap(nums, i, j)
                j = j + 1
    def swap(self, nums, i, j):
        tmp = nums[i]
        nums[i] = nums[j]
        nums[j] = tmp
        

 第二种思路: leetcode31的下一个排列

     

猜你喜欢

转载自blog.csdn.net/biubiubiu888/article/details/86592788