알고리즘

[LeetCode] 90. Subsets II

유병각 2022. 6. 22. 20:23
class Solution:
    def subsetsWithDup(self, nums: List[int]) -> List[List[int]]:
        
        ret = []
        n = len(nums)
        nums = sorted(nums)
        
        
        def rec(length, subset, items):
            
            if (len(subset) == length):
                if ((subset) not in ret):
                    ret.append((subset))
                return ;
            
            if (items == []):
                return ;
            
            for i in range(len(items)):
                rec(length, subset + [items[i]], items[i+1:])
        
        for length in range(n + 1):
                rec(length, [], nums[:])
            
        return ret