算法记录Day 24 | 回溯算法part01
LeetCode 77.组合
题目链接:77. 组合
题解
func combine(n int, k int) [][]int {
res := make([][]int, 0)
backtrack(n, k, 1, []int{}, &res)
return res
}
func backtrack(n int, k int, start int, path []int, res *[][]int) {
if len(path) == k {
temp := make([]int, len(path))
copy(temp, path)
*res = append(*res, temp)
return
}
for i := start; i <= n; i++ {
path = append(path, i)
backtrack(n, k, i+1, path, res)
path = path[:len(path)-1]
}
}