给一个整数数组 nums ,其中可能包含重复元素,请你返回该数组所有可能的子集(幂集)。解集不能包含重复的子集。返回的解集中,子集可以按任意顺序 排列。 输入示例:nums = [1,2,2] ,输出示例:[[],[1],[1,2],[1,2,2],[2],[2,2]],用python代码表示
时间: 2023-05-24 15:01:30 浏览: 64
数组中重复的数字_
5星 · 资源好评率100%
可以使用Python中的itertools库的combinations函数来生成所有的子集,然后再剔除掉重复的子集即可。
以下是代码:
from itertools import combinations
def subsets(nums):
res = []
for i in range(len(nums)+1):
for subset in combinations(nums, i):
if subset not in res:
res.append(list(subset))
return res
nums = [1,2,2]
print(subsets(nums)) # [[], [1], [2], [1, 2], [2, 2], [1, 2, 2]]
阅读全文