回溯模板:
1、77. 组合
题目:
给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。
你可以按 任何顺序 返回答案。
思路:
- 很经典的回溯,也是回溯中模板的经典应用,因而是回溯中的简单题
func combine(n int, k int) [][]int {//代码二刷list := make([]int, 0)res := make([][]int, 0)backtrack(&res, list,n,k,1)return res
}
func backtrack(res *[][]int, list []int, n,k,index int,) {if len(list) == k {// 满足结束条件ans := make([]int, len(list))copy(ans, list)*res = append(*res, ans)return }for i:=index; i<=n;i++ {list = append(list, i)backtrack(res, list, n,k,i+1)list = list[:len(list)-1]}
}