-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy path90.py
More file actions
19 lines (18 loc) · 667 Bytes
/
Copy path90.py
File metadata and controls
19 lines (18 loc) · 667 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class Solution:
def subsetsWithDup(self, nums: List[int]) -> List[List[int]]:
ret = []
count = collections.Counter(nums)
self.Backtrack([m for m in set(nums)], [], ret, 0, count)
return ret
def Backtrack(self, nums, curr, ret, k, count):
ret.append([c for c in curr])
if k == len(nums):
return curr
for i in range(k, len(nums)):
temp = []
for j in range(count[nums[i]]):
temp.append(nums[i])
curr += temp
curr = self.Backtrack(nums, curr, ret, i + 1, count)
curr = curr[:-len(temp)]
return curr