子集II-回溯90-python

钎探穗

关注

阅读 73

2022-03-11

没看答案。

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)

0 0 举报