Skip to content

Commit ea4da85

Browse files
committed
77. 组合
1 parent 30f6a5c commit ea4da85

File tree

2 files changed

+25
-0
lines changed

2 files changed

+25
-0
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
|70|[爬楼梯](https://leetcode.cn/problems/climbing-stairs/)|[JavaScript](./algorithms/climbing-stairs.js)|Easy|
4040
|71|[简化路径](https://leetcode.cn/problems/simplify-path/)|[JavaScript](./algorithms/simplify-path.js)|Medium|
4141
|73|[矩阵置零](https://leetcode.cn/problems/set-matrix-zeroes/)|[JavaScript](./algorithms/set-matrix-zeroes.js)|Medium|
42+
|77|[组合](https://leetcode.cn/problems/combinations/)|[JavaScript](./algorithms/combinations.js)|Medium|
4243
|82|[删除排序链表中的重复元素 II](https://leetcode.cn/problems/remove-duplicates-from-sorted-list-ii/)|[JavaScript](./algorithms/remove-duplicates-from-sorted-list-ii.js)|Medium|
4344
|83|[删除排序链表中的重复元素](https://leetcode.cn/problems/remove-duplicates-from-sorted-list/)|[JavaScript](./algorithms/remove-duplicates-from-sorted-list.js)|Easy|
4445
|88|[合并两个有序数组](https://leetcode.cn/problems/merge-sorted-array/)|[JavaScript](./algorithms/merge-sorted-array.js)|Easy|

algorithms/combinations.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
/**
2+
* @param {number} n
3+
* @param {number} k
4+
* @return {number[][]}
5+
*/
6+
var combine = function (n, k) {
7+
const result = [];
8+
const path = [];
9+
const backTracking = (n, k, startIndex) => {
10+
// 终止条件
11+
if (path.length === k) {
12+
result.push(path.slice());
13+
return;
14+
}
15+
for (let i = startIndex; i <= n; i++) { // 控制树的横向遍历
16+
path.push(i); // 处理节点
17+
backTracking(n, k, i + 1); // 递归,控制树的纵向遍历,注意下一层搜索要从i+1开始
18+
path.pop(); // 回溯,撤销处理的节点
19+
}
20+
};
21+
backTracking(n, k, 1);
22+
23+
return result;
24+
};

0 commit comments

Comments
 (0)