[leetcode] 46. Permutations

题目

Given an array nums of distinct integers, return all the possible permutations. You can return the answer in any order.

Example 1:

Input: nums = [1,2,3]
Output: [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]

Example 2:

Input: nums = [0,1]
Output: [[0,1],[1,0]]

Example 3:

Input: nums = [1]
Output: [[1]]

Constraints:

  • 1 <= nums.length <= 6
  • -10 <= nums[i] <= 10
  • All the integers of nums are unique.

思路

递归向数组中追加值,数组满时填入list中。

代码

python版本:

class Solution:
    def permute(self, nums: List[int]) -> List[List[int]]:
        used = [0 for _ in range(len(nums))]
        res = []

        def recursion(n):
            if len(n) == len(nums):
                res.append(n)
                return
            for i in range(len(nums)):
                if used[i]:
                    continue
                used[i] = 1
                recursion(n+[nums[i]])
                used[i] = 0
        recursion([])
        return res

posted @ 2022-03-09 19:09  frankming  阅读(20)  评论(0编辑  收藏  举报