Leetcode_46_全排列_hn

题目描述

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

示例

示例 1:

输入: [1,2,3]
输出:
[
  [1,2,3],
  [1,3,2],
  [2,1,3],
  [2,3,1],
  [3,1,2],
  [3,2,1]
]

解答方法

方法一:回溯法

思路

https://leetcode-cn.com/problems/permutations/solution/hui-su-suan-fa-xiang-jie-by-labuladong-2/

代码

class Solution:
    def permute(self, nums: List[int]) -> List[List[int]]:
        res = []
        def backtrack(nums, tmp):
            if not nums:
                res.append(tmp)
                return
            for i in range(len(nums)):
                backtrack(nums[:i] + nums[i + 1:], tmp + [nums[i]])
        backtrack(nums, [])
        return res

时间复杂度

空间复杂度

O(N!) ,由于必须要保存N! 个解。

你可能感兴趣的:(Leetcode_46_全排列_hn)