-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSubsets2.py
More file actions
32 lines (17 loc) · 793 Bytes
/
Subsets2.py
File metadata and controls
32 lines (17 loc) · 793 Bytes
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
class Solution:
def subsetsWithDup(self, nums: List[int]) -> List[List[int]]:
res = []
nums.sort() #sorting as we check present and next int for duplicates
def backtrack(i, subset):
#base case
if i == len(nums):
res.append(subset.copy()) #also subset([::]) is valid
return
subset.append(nums[i])
backtrack(i+1, subset)
subset.pop()
while i + 1 < len(nums) and nums[i] == nums[i+1]:
i += 1
backtrack(i+1, subset)
backtrack(0, [])
return res