题目描述
给定一个值n,能构建出多少不同的值包含1…n的二叉搜索树(BST)?
例如
给定 n = 3, 有五种不同的二叉搜索树(BST)
代码
思路和21题一样,通过数学归纳找规律
public static int numTrees (int n) {if(n>1) {int[] arr = new int[n+1];arr[0] = 1;arr[1] = 1;for(int i=2;i<=n;i++) {for(int k=1;k<=i;k++) {arr[i] += arr[k-1]*arr[i-k];}}return arr[n];}else {return 1;}// write code here}
