leetcode刷题-46全排列

题目

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

思路

回溯算法

不断取出字符,对剩余字符进行选择

实现

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

 

posted @ 2020-08-03 10:06  maoguai  阅读(99)  评论(0编辑  收藏  举报