动态规划代码:
- 注释代码超时了
- 新代码用for循环模拟递归,来完成动态规划,由小问题到大问题
func numTrees(n int) int {
G := make([]int, n + 1)
G[0], G[1] = 1, 1
for i := 2; i <= n; i++ {
for j := 1; j <= i; j++ {
G[i] += G[j-1] * G[i-j]
}
}
return G[n]
}
// func recur(a, b int) int {
// if a > b {
// return 1
// }
// ans := 0
// for i := a; i <= b; i++ {
// lt := recur(a, i-1)
// rt := recur(i+1, b)
// ans += lt * rt
// }
// return ans
// }