Skip to content

Commit aa2b383

Browse files
authored
Create permutations-II.py
Has to implement DFS in order to operate fast enough to pass the new conditions. Uses copy.deepcopy to prevent lists from being retroactively destroyed
1 parent d459021 commit aa2b383

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

permutations-II.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import copy
2+
class Solution:
3+
def permuteUnique(self, nums: List[int]) -> List[List[int]]:
4+
res = []
5+
nums = sorted(nums)
6+
used = [False]*len(nums)
7+
li = []
8+
self.dfs(nums, used, li, res)
9+
return res
10+
11+
def dfs(self, nums, used, li, res):
12+
if len(li) == len(nums):
13+
res.append(copy.deepcopy(li))
14+
return
15+
for i in range(len(nums)):
16+
if used[i]:
17+
continue
18+
if i > 0 and (nums[i] == nums[i-1]) and not used[i-1]:
19+
continue
20+
used[i] = True
21+
li.append(nums[i])
22+
self.dfs(nums, used, li, res)
23+
used[i] = False
24+
li.pop()

0 commit comments

Comments
 (0)