剪枝的方式
func generateParenthesis(n int) []string {
if n ==0 {
return []string{}
}
ma1 := make([]string,0)
ma(&ma1,"",0,0,n)
return ma1
}
func ma(ma1 *[]string,result string,left,right,n int) {
if left == n && right == n {
*ma1 = append(*ma1,result)
return
}
if left < n {// 此处就是使用的剪枝
ma(ma1,result+"(",left+1,right,n)
}
if right < left && right < n {// 此处就是使用的剪枝 因为不是所有的条件都去递归,而是又选择性质的去递归,这种又选择的方式就是剪枝
ma(ma1,result+")",left,right+1,n)
}
}