46. Permutations

Given a collection of distinct numbers, return all possible permutations.

For example, [1,2,3] have the following permutations:

[
  [1,2,3],
  [1,3,2],
  [2,1,3],
  [2,3,1],
  [3,1,2],
  [3,2,1]
]

Solution: DFS

class Solution(object):
    def permute(self, nums):
        """
        :type nums: List[int]
        :rtype: List[List[int]]
        """
        used = [False] * len(nums)
        permutations = []
        permutation = []

        def dfs():
            if len(permutation) == len(nums):
                permutations.append(permutation[:])
                return
            for idx, num in enumerate(nums):
                if used[idx]:
                    continue
                used[idx] = True
                permutation.append(num)
                dfs()
                permutation.pop()
                used[idx] = False

        dfs()
        return permutations

results matching ""

    No results matching ""