没看答案。
class Solution:
def subsetsWithDup(self, nums: List[int]) -> List[List[int]]:
nums = sorted(nums)
n = len(nums)
# python的列表默认为全局变量,所以不用传入backtrack()中
res = [[]]
track = []
def backtrack(start):
if track not in res:
res.append(track[:])
for cho in range(start, n):
# 防止重复的元素被重复考虑
if cho > start and nums[cho] == nums[cho-1]:
continue
track.append(nums[cho])
backtrack(cho+1)
track.pop()
backtrack(0)
return res