标签:
Given n, how many structurally unique BST‘s (binary search trees) that store values 1...n?
For example,
Given n = 3, there are a total of 5 unique BST‘s.
1 3 3 2 1
\ / / / \ 3 2 1 1 3 2
/ / \ 2 1 2 3
题意:求n个数能构成多少种二叉搜索树。
思路:每个数都能作为根节点,那么用a[n]表示长度为n的时候有多少种可能,那么每次枚举到i的时候,就会有左边有a[j],右边就有a[i-1-j]种可能,那么a[i]的结果就是两个数的乘积。
public class Solution {
public int numTrees(int n) {
if (n < 0) return 0;
int a[] = new int[1000];
a[0] = 1;
for (int i = 1; i <= n; i++)
for (int j = 0; j < i; j++)
a[i] += a[j] * a[i-j-1];
return a[n];
}
}
LeetCode Unique Binary Search Trees
标签:
原文地址:http://blog.csdn.net/u011345136/article/details/45243575