diff --git a/problems/0077.组合.md b/problems/0077.组合.md index 1f0d6eb1..d9d4b17f 100644 --- a/problems/0077.组合.md +++ b/problems/0077.组合.md @@ -370,8 +370,45 @@ class Solution { Python: +```python +class Solution: + result: List[List[int]] = [] + path: List[int] = [] + def combine(self, n: int, k: int) -> List[List[int]]: + self.result = [] + self.combineHelper(n, k, 1) + return self.result - + def combineHelper(self, n: int, k: int, startIndex: int): + if (l := len(self.path)) == k: + self.result.append(self.path.copy()) + return + for i in range(startIndex, n - (k - l) + 2): + self.path.append(i) + self.combineHelper(n, k, i + 1) + self.path.pop() +``` +javascript +```javascript +let result = [] +let path = [] +var combine = function(n, k) { + result = [] + combineHelper(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() + } +} +``` Go: ```Go var res [][]int