Permutations
46. Permutations
Difficulty: Medium
Related Topics: Array, Backtracking
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]]
Code:
class Solution:
def permute(self, nums: List[int]) -> List[List[int]]:
res = []
n = len(nums)
check = [False] * n
def recur(num, tmp):
if num == n:
res.append(tmp.copy())
return
for i in range(n):
if check[i] == False:
check[i] = True
tmp.append(nums[i])
recur(num + 1, tmp)
check[i] = False
tmp.pop()
recur(0, [])
return res