Combinations
- 1 min read
- LC-Medium
- Backtracking
Solution
- The for loop starting from
start is what prevents duplicates from forming when constructing your answer
| Time | Space | Explanation |
|---|
O() | O() | |
function combine(n: number, k: number): number[][] {
const combinations: number[][] = [];
function backtrack (start: number, cur: number[]) {
if (cur.length === k) {
combinations.push(cur);
return;
}
for (let i = start; i <= n; i++) {
backtrack(i + 1, [...cur, i]);
}
}
backtrack(1, []);
return combinations;
};