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)
|
2026-09-25 13:17:35 -04:00
|
|
|
icon: dot
|
2026-09-28 11:20:41 -04:00
|
|
|
topics:
|
|
|
|
|
- { name: "Array", slug: "array" }
|
|
|
|
|
- { name: "Backtracking", slug: "backtracking" }
|
|
|
|
|
- { name: "Bit Manipulation", slug: "bit-manipulation" }
|
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
|
|
|
|
|
```
|