## 算法记录Day 24 | 回溯算法part01

41 阅读1分钟

算法记录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]
	}
}