Find All Subsets

DFS

def findSubset(self, nums):
    """
    :type nums: List[int]
    :rtype: List[List[int]]
    """
    self.res = []
    def dfs (nums, index, memo):
            
        if index == len(nums):
            self.res.append(memo.copy())
            return
        # memo += [nums[index]]
        memo.append(nums[index])
        dfs(nums, index+1, memo)
        memo.pop()
        dfs(nums, index+1, memo)
           
    dfs(nums, 0, [])
    return self.res
nums = [1, 2, 3, 4, 5]
findSubset(nums)
   

Array

def findSubset1(num):
    for item in num:
        tmp = []
        for element in res:  
            tmp.append(element + [item])
        """
        for item in num:
        res = res + [[item] + i for element in res]  
        """
        res = res + tmp  
    return res
 
num = [1, 2, 3, 4, 5]
res = [[]]
findSubset1(num)

Last updated