子集中的每个元素都是非降序的
两个子集间的顺序是无关紧要的
解集中不能包含重复子集
class Solution:
"""
@param nums: A set of numbers.
@return: A list of lists. All valid subsets.
"""
def subsetsWithDup(self, nums) :
# write your code here
def dfs(depth, start, valuelist) :
if valuelist not in res:
res.append(valuelist)
if depth == len(nums) : return
for i in range(start, len(nums)) :
dfs(depth + 1, i + 1, valuelist + [nums[i]])
nums.sort()
res = []
dfs(0, 0, [])
return res