给定一个整数数组 nums ,数组中的元素互不相同(若数组中的元素存在相同的,则添加1、2处代码即可) 。返回该数组所有可能的子集(幂集)。解集不能包含重复的子集。你可以按任意顺序返回解集。
def subset(nums):
res=[]
n=len(nums)
def backtrace(index,tmp):
res.append(tmp[:])
for i in range(index,n):
'''
if i>index and nums[i]==nums[i-1]: #1
continue #2
'''
tmp.append(nums[i])
backtrace(i+1,tmp)
tmp.pop()
backtrace(0,[])
return res