var result3 [][]int
var trace []int
func combine(n int, k int) [][]int {
result3 =[][]int{}
trace =[]int{}
backTack(n,k,1)
return result3
}
func backTack(n int,k int,startIndex int){
if len(trace)==k{
len2 :=len(trace)
tmp :=make([]int,len2)
copy(tmp,trace)
result3 = append(result3,tmp)
return
}
for i:=startIndex;i<=n;i++{
trace = append(trace,i)
backTack(n,k,i+1)
trace=trace[:len(trace)-1]
}
}
优化:
if len(track)+n-start+1 < k {
return
}