Skip to content

Latest commit

 

History

History
36 lines (31 loc) · 569 Bytes

77. 组合.md

File metadata and controls

36 lines (31 loc) · 569 Bytes
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
		}