标签:
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