Skip to the content.

leetcode 90 子集 II


Contact me:

Blog -> https://cugtyt.github.io/blog/index
Email -> cugtyt@qq.com
GitHub -> Cugtyt@GitHub


给定一个可能包含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。

说明:解集不能包含重复的子集。

示例:

输入: [1,2,2]
输出:
[
  [2],
  [1],
  [1,2,2],
  [2,2],
  [1,2],
  []
]
class Solution:
    def subsetsWithDup(self, nums: List[int]) -> List[List[int]]:
        result = []
        for i in range(2**len(nums)):
            select = bin(10**6 + i)[-len(nums):]
            temp = sorted([n for s, n in zip(select, nums) if s == '1'])
            if temp not in result:
                result.append(temp)
        return result