描述
已知一棵节点个数为 n的二叉树的中序遍历单调递增, 求该二叉树能能有多少种树形, 输出答案对 10^9+710 9+7 取模
数据范围:
1 \le n \le 30001≤n≤3000
分析
二叉树的中序遍历单调递增即符合搜索二叉树的要求,即题目是想求有n个结点的搜索二叉树有多少种树的形态。
n个结点的搜索二叉树的形态个数等于dp[i] = dp[j-1] * dp[i-j] 。dp[j-1]是左半边的可能形况,dp[i-j]是右半边的可能情况。
dp[0]取1,这样方便计算节点全在一边的情况。
注意整数的类型!
public int numberOfTree (int n) {
// write code he