# Solution: Subsets

Let's solve the Subsets problem using the Subsets pattern.

We'll cover the following

## Statement

Given an array of integers, nums, find all possible subsets of nums, including the empty set.

Note: The solution set must not contain duplicate subsets. You can return the solution in any order.

Constraints:

• $1 \leq$ nums.length $\leq 10$
• $-10 \leq$ nums[i] $\leq 10$
• All the numbers of nums are unique.

## Pattern: Subsets

Problems such as this one, where we need to find all possible subsets of a given set, can be efficiently solved using the subsets pattern. This pattern involves generating all possible subsets of a given set by using binary representations of indices to represent which elements should be included in each subset. This approach allows us to solve a wide range of problems that involve generating all possible subsets of a set.

## Solution

The idea is to generate binary numbers from $0$ to $2^{nums.length}$. The number of bits in the binary numbers will equal nums.length. These integers will be added to the subset whose corresponding bits are set to $1$ in the binary number.

Note: The ordering of bits for picking integers from the set doesnâ€™t matter. We can pick integers from left to right and produce the same output as picking integers from right to left.

Level up your interview prep. Join Educative to access 70+ hands-on prep courses.