Leetcode46. 全排列——python求解

46. 全排列

给定一个 没有重复 数字的序列,返回其所有可能的全排列。

示例:

输入: [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 backsort(flag=-1):
            if flag == n:
                res.append(nums[:])
            for i in range(flag,n):
                nums[flag],nums[i] = nums[i],nums[flag]
                backsort(flag+1)
                nums[flag],nums[i] = nums[i],nums[flag]
            return
        flag = 0
        res = []
        n = len(nums)
        backsort(flag)
        return res

猜你喜欢

转载自blog.csdn.net/weixin_41729258/article/details/105756482
今日推荐