题目:
给定一个可能包含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。 说明:解集不能包含重复的子集。
思路:
与第78题思路一样,用迭代法,对重复的数据进行判断再进行操作就可以。
程序:
class Solution:
def subsetsWithDup(self, nums: List[int]) -> List[List[int]]:
nums.sort()
length = len(nums)
if length <= 0:
return [[]]
if length == 1:
return [[],nums]
result = [[]]
auxiliary = []
for index1 in range(length):
if index1 >= 1 and nums[index1 - 1] == nums[index1]:
auxiliary = [[nums[index1]] + index2 for index2 in auxiliary]
else:
auxiliary = [[nums[index1]] + index2 for index2 in result]
result +=auxiliary
return result