泛型递归/分治模版
泛型递归
func recursion(level int, data int) {
// 1. terminate
if terminate is true {
return
}
// 2. process current level
process(level, data)
// 3. drill into next level
recursion(level+1, data)
// 4. reverse current level if needed
}泛型分治
func divide_conquer(problem interface{}, data inferface{}) interface{} {
res := make([]interface{}, 0 )
//1. recursion is terminate
if problem is nil {
process_result()
return
}
//2. prepare data
data := prepare(problem, data)
problems := splitProblem(problem,data)
// 3. conquer sub problems
for k,v := range problems {
res = append(res, divide_conquer(v, data))
}
// 4.process result
result = process_result(res)
return result
}Last updated
Was this helpful?