Subsets Visualizer & Step-by-Step Algorithm Solution

Generate all possible subsets (the power set) of a distinct integer array using recursive backtracking on the decision tree.

Category: backtracking | Difficulty: Medium

Tags: Backtracking, Recursion, Power Set, Combinations, Decision Tree

Subsets

100%
state
current[]
currentLength0
resultCount0
result[]
nums[1, 2, 3]
Initialization
1/48
Explanation

Starting subsets with nums = [1, 2, 3]. Initialized empty state space tree.

Source Code
1function subsets(nums: number[]): number[][] {
2 const result: number[][] = [];
3 function backtrack(start: number, current: number[]) {
4 result.push([...current]);
5 for (let i = start; i < nums.length; i++) {
6 current.push(nums[i]);
7 backtrack(i + 1, current);
8 current.pop();
9 }
10 }
11 backtrack(0, []);
12 return result;
13}