LeetCode #90 Subsets II
题目
解题方法
与Subsets类似可以采用三种办法,本文基于二进制映射的方法进行了去重改进,将output设置为集合set,每次添加一个tuple进去,最后再把tuple都映射成list返回一个嵌套列表即可。
代码
class Solution:
def subsetsWithDup(self, nums: List[int]) -> List[List[int]]:
nums.sort()
n = len(nums)
output = set()
for i in range(2**n, 2**(n+1)):
bitmask = bin(i)[3:]
temp = []
for j in range(n):
if bitmask[j] == '1':
temp.append(nums[j])
output.add(tuple(temp))
return map(list, output)

浙公网安备 33010602011771号