Files
leetcode/apps/docs/content/(05-decision-space)/backtracking/78-subsets.mdx
T

45 lines
1.0 KiB
Plaintext
Raw Normal View History

2026-09-24 14:36:19 -04:00
---
title: '78. Subsets'
description: Given an integer array nums of unique elements, return all possible subsets (the power set)
icon: dot
topics:
- { name: "Array", slug: "array" }
- { name: "Backtracking", slug: "backtracking" }
- { name: "Bit Manipulation", slug: "bit-manipulation" }
issue: "https://github.com/prdlk/leetcode/issues/149"
2026-09-24 14:36:19 -04:00
sidebar:
label: 'Subsets'
badge: 'Medium'
---
### 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
```py
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
```