LeetCode笔记

子集 II(带重复元素的子集)

2018-03-19  本文已影响34人  只为此心无垠

LeetCode题目地址

给定一个可能包含重复整数的列表,返回所有可能的子集(幂集)。
注意事项:解决方案集不能包含重复的子集。
例如,如果 nums = [1,2,2],答案为:

对比题目:
全排列

[
[2],
[1],
[1,2,2],
[2,2],
[1,2],
[]
]

class Solution(object):
    def subjectHelper(self, nums, start):
        self.resultAll.append(list(self.result))
        for i in range(start,len(nums)):
            if start != i and nums[i] == nums[i - 1]:
                continue
            self.result.append(nums[i])
            self.subjectHelper(nums, i+1)
            self.result.pop()
    def subsetsWithDup(self, nums):
        """
        :type nums: List[int]
        :rtype: List[List[int]]
        """
        if len(nums) == 0:
            return []
        self.result = []
        self.resultAll = []
        self.subjectHelper(sorted(nums), 0)
        return self.resultAll
上一篇 下一篇

猜你喜欢

热点阅读