77.组合

leetcode

递归实现:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
func combine(n int, k int) [][]int {
curr := []int{}
result := [][]int{}

var dfs func(int)
dfs = func(i int) {
//如果剩下的数都取,还不够k,就剪枝
if len(curr) + n - i + 1 < k {
return
}

if len(curr) == k {
result = append(result, append([]int{}, curr...))
return
}

curr = append(curr, i)
dfs(i + 1)

curr = curr[:len(curr) - 1]
dfs(i + 1)
}

dfs(1)
return result
}

77.组合
https://blog.jerrylee.me/2021/09/0ad8484ad345.html
作者
Jerry Lee
发布于
2021年9月20日
许可协议