题目
给出一个数组,里面可能包含重复元素,返回所有的子数组。注意:不能包含重复的子数组。
Python题解
class Solution(object):
def subsetsWithDup(self, nums):
"""
:type nums: List[int]
:rtype: List[List[int]]
"""
nums.sort()
path, res = [], []
self.dfs(nums, 0, path, res)
return res
def dfs(self, nums, index, path, res):
res.append(path)
for i in range(index, len(nums)):
if i > index and nums[i] == nums[i - 1]:
continue
self.dfs(nums, i + 1, path + [nums[i]], res)