[Day42]-[回溯]- 组合
作者:方勇(gopher)
- 2022 年 5 月 18 日
本文字数:327 字
阅读完需:约 1 分钟
77. 组合
给定两个整数
n
和k
,返回范围[1, n]
中所有可能的k
个数的组合。你可以按 任何顺序 返回答案。
示例 1:
输入:n = 4, k = 2
输出:
[
[2,4],
[3,4],
[2,3],
[1,2],
[1,3],
[1,4],
]
复制代码
示例 2:
输入:n = 1, k = 1
输出:[[1]]
复制代码
题解:
func TestCombine(t *testing.T) {
var res [][]int
var trackBack func(n, k, start int, trace []int)
trackBack = func(n, k, start int, trace []int) {
if len(trace) == k {
res = append(res, append([]int{}, trace...))
return
}
for i := start; i <= n; i++ {
trace = append(trace, i)
trackBack(n, k, i+1, trace)
trace = trace[:len(trace)-1]
}
}
trackBack(4, 2, 1, []int{})
t.Log(res)
}
复制代码
划线
评论
复制
发布于: 刚刚阅读数: 2
方勇(gopher)
关注
Dead or Alive. 生存战斗是知识的源泉! 2018.11.08 加入
我是一名SRE哨兵,目前是好大夫基础架构部高级工程师。专注于 SRE,微服务、中间件的稳定性和可用性建设,整体负责好大夫服务治理云平台的设计和搭建!
评论