-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathleetcode_0046.py
34 lines (26 loc) · 945 Bytes
/
leetcode_0046.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
class Solution:
def permute(self, nums: list[int]) -> list[list[int]]:
combos: list[list[int]] = []
def backtracking(numbers: list[int], combo: list[int] = []):
if not numbers:
combos.append(combo[:])
return
for i in range(len(numbers)):
# Choose
num = numbers.pop(i)
combo.append(num)
# Explore
backtracking(numbers, combo)
# Un choose
combo.pop()
numbers.insert(i, num)
backtracking(nums)
return combos
# Input: nums = [1,2,3]
# Output: [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]
s = Solution()
print(s.permute(nums=[1, 2, 3]))
# from itertools import permutations
# class Solution:
# def permute(self, nums: list[int]) -> list[list[int]]:
# return list(map(list, permutations(nums)))