# Solution: Subsets

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

## 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.