组合

给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。
可以按 任何顺序 返回答案。

  • 输入:n = 4, k = 2
  • 输出:
    [
    [2,4],
    [3,4],
    [2,3],
    [1,2],
    [1,3],
    [1,4],
    ]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var combine = function(n, k) {
let ret = []
const helper = (start, prev) => {
for(let i = start; i <= n; i++) { // 第一层
const cur = prev.concat(i)
if (cur.length === k) { // 出口条件
ret.push(cur)
} else {
helper(i + 1, cur) // 第二层
}
}
}
helper(1, [])
return ret
};