记录一个很简洁的组合算法递归求解。
package main
import (
"fmt"
)
var allres [][]int
func main(){
var res []int
src := []int{1,2,3}
combina(src, res, 0)
fmt.Print(allres)
}
func combina(src []int, str []int, pos int) {
if (pos == len(src)){
if len(str) != 0 {
allres = append(allres, str)
}
return
}
combina(src, str, pos+1)
combina(src, append(str, src[pos]), pos+1)
}