0
点赞
收藏
分享

微信扫一扫

子集II-回溯90-python

钎探穗 2022-03-11 阅读 73

没看答案。

class Solution:
    def subsetsWithDup(self, nums: List[int]) -> List[List[int]]:
        nums = sorted(nums)
        n = len(nums)

        # python的列表默认为全局变量,所以不用传入backtrack()中
        res = [[]]
        track = []

        def backtrack(start):
            if track not in res:
                res.append(track[:])
            
            for cho in range(start, n):
                # 防止重复的元素被重复考虑
                if cho > start and nums[cho] == nums[cho-1]:
                    continue
                
                track.append(nums[cho])
                backtrack(cho+1)
                track.pop()
        
        backtrack(0)
        return res
举报

相关推荐

0 条评论