Skip to content
Leetcode
Esc
↑↓navigate↵open⌘Jpreview
On this page

78. Subsets

Given an integer array nums of unique elements, return all possible subsets (the power set)

Array

Example 1:

  • Input: nums = [1,2,3]
  • Output: [[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]

Example 2:

  • Input: nums = [0]
  • Output: [[],[0]]

Constraints:

  • 1 <= nums.length <= 10
  • -10 <= nums[i] <= 10
  • All the numbers of nums are unique.

Solution

class Solution:
    def subsets(self, nums: list[int]) -> list[list[int]]:
        res = []

        def backtrack(i, path):
            res.append(path[:])
            for num_idx in range(i, len(nums)):
                path.append(nums[num_idx])
                backtrack(num_idx + 1, path)
                path.pop()

        backtrack(0, [])
        return res

Last updated on September 24, 2026

Was this page helpful?