mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-07 15:45:40 +08:00
refactor: 0077.组合.md
This commit is contained in:
@ -499,24 +499,28 @@ var combine = function (n, k) {
|
||||
剪枝:
|
||||
|
||||
```javascript
|
||||
let result = []
|
||||
let path = []
|
||||
var combine = function(n, k) {
|
||||
result = []
|
||||
combineHelper(n, k, 1)
|
||||
return result
|
||||
var combine = function (n, k) {
|
||||
// 回溯法
|
||||
let result = [],
|
||||
path = [];
|
||||
let backtracking = (_n, _k, startIndex) => {
|
||||
// 终止条件
|
||||
if (path.length === _k) {
|
||||
result.push(path.slice());
|
||||
return;
|
||||
}
|
||||
// 循环本层集合元素
|
||||
for (let i = startIndex; i <= _n - (_k - path.length) + 1; i++) {
|
||||
path.push(i);
|
||||
// 递归
|
||||
backtracking(_n, _k, i + 1);
|
||||
// 回溯操作
|
||||
path.pop();
|
||||
}
|
||||
};
|
||||
backtracking(n, k, 1);
|
||||
return result;
|
||||
};
|
||||
const combineHelper = (n, k, startIndex) => {
|
||||
if (path.length === k) {
|
||||
result.push([...path])
|
||||
return
|
||||
}
|
||||
for (let i = startIndex; i <= n - (k - path.length) + 1; ++i) {
|
||||
path.push(i)
|
||||
combineHelper(n, k, i + 1)
|
||||
path.pop()
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### TypeScript
|
||||
|
Reference in New Issue
Block a user