Solution: Subsets


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.


  • 11 \leq nums.length 10\leq 10
  • 10-10 \leq nums[i] 10\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.


The idea is to generate binary numbers from 00 to 2nums.length2^{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 11 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.