Permutations

LeetCode

LeetCode: https://leetcode.com/problems/permutations/

Given an array nums of distinct integers, return all possible permutations.

1def permute(nums: List[int]) -> List[List[int]]:
2 res = []
3 used = [False] * len(nums)
4 cur = []
5
6 def dfs() -> None:
7 if len(cur) == len(nums):
8 res.append(cur[:])
9 return
10 for i in range(len(nums)):
11 if used[i]:
12 continue
13 used[i] = True
14 cur.append(nums[i])
15 dfs()
16 cur.pop()
17 used[i] = False
18
19 dfs()
20 return res
pick
1
0
2
1
3
2
used=[true, false, false]
cur=[1]
resCount=0
Step 1 / 6
Step 1:
Pick nums[0]=1 (mark used).
Pointers: pick=0
Focus: select @ [0]
resCount=0