77. Combinations
Problem
Tags: Backtracking
Given two integers n
and k
, return all possible combinations of k
numbers out of the range [1, n]
.
You may return the answer in any order.
Example 1:
Input: n = 4, k = 2
Output:
[
[2,4],
[3,4],
[2,3],
[1,2],
[1,3],
[1,4],
]
Example 2:
Input: n = 1, k = 1
Output: [[1]]
Constraints:
1 <= n <= 20
1 <= k <= n
Code
JS
// 77. Combinations (4/9/53740)
// Runtime: 116 ms (77.30%) Memory: 44.04 MB (94.84%)
/**
* @param {number} n
* @param {number} k
* @return {number[][]}
*/
function combine(n, k) {
const result = [];
backtrack(1, []);
return result;
function backtrack(start, curr) {
if (curr.length === k) return result.push([...curr]);
for (let i = start; i <= n; i++) {
curr.push(i);
backtrack(i + 1, curr);
curr.pop();
}
}
}