排列

0X00 模板题目

  • 46. Permutations
class Solution:
    def permute(self, nums: List[int]) -> List[List[int]]:
        cur = []
        used = [False] * len(nums)
        ans = []
        def dfs():
            if len(cur) == len(nums):
                ans.append(cur[:])
                return
            
            for i, n in enumerate(nums):
                if used[i]:continue
                used[i] = True
                cur.append(n)
                dfs()
                used[i] = False
                cur.pop()

        dfs()
        return ans

很典型的「排列模板题目」用 dfs 生成所有排列, 通常使用 cur 数组去做, 减少拷贝的次数

0X01 注意事项

暂无

0X02 相关题目

  • 47. Permutations II

  • 784. Letter Case Permutation

  • 943. Find the Shortest Superstring

  • 996. Number of Squareful Arrays

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