Published on

Subsets

Authors
  • avatar
    Name
    Alex Noh
    Twitter

Introduction

Given an integer array nums of unique elements, return all possible subsets1 (the power set). The solution set must not contain duplicate subsets. Return the solution in any order.

Solutions

1. Using DFS

This solution is straightforward. Starting from an empty list, it appends elements recursively to build all possible subsets of the given list nums.

main.py
def subsets(nums: List[int]) -> List[List[int]]:
    answer = []

    def dfs(lst, index=0):
        answer.append(lst)
        if index == len(nums):
            return
        for i in range(index, len(nums)):
            dfs(lst + [nums[i]], i + 1)

    dfs([], 0)

    return answer

References

Footnotes

  1. A subset of an array is a selection of elements (possibly none) of the array.