Combinations Visualizer & Step-by-Step Algorithm Solution

Given two integers n and k, return all possible combinations of k numbers chosen from the range [1, n] using recursive backtracking on the decision tree.

Category: backtracking | Difficulty: Medium

Tags: Backtracking, Recursion, Combinations, Decision Tree, LeetCode 77

Combinations

100%
state
n4
k2
current[]
len0/2
found0
Initialization
1/73
Explanation

Starting combine(n = 4, k = 2). Find all combinations of 2 numbers from range [1, 4].

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