leetcod90。第二子集

2024-09-27 00:20:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我在学Python。我需要解决以下问题problem:Given a 可能包含重复项的整数集合,nums,返回所有可能的子集(幂集)

class Solution:
    def backtrack(self, List, start, nums, temlist):
        self.List.append(temlist)
        print(self.List)
        for i in range(start, len(nums)):
            if (i > start and (nums[i] == nums[i - 1])):
                continue
            temlist.append(nums[i])
            self.backtrack(List, i + 1, nums, temlist)
            temlist.pop()

    def subsetsWithDup(self, nums) :
        self.List = []
        temlist = []
        self.backtrack(self.List, 0, nums, temlist)
        return self.List

输出是

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

虽然预计会是:

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

谢谢


Tags: selfdef整数startgiven子集listclass

热门问题