Unique Binary Search Trees
Aug 27 '12
3164 / 5973
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
class Solution {
public:
int mh[10000];
int h(int n)
{
if(mh[n] != 0)
return mh[n];
mh[n] = (4*n-2)*h(n-1) / (n + 1);
return mh[n];
}
int numTrees(int n) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
mh[1] = 1;
mh[0] = 1;
return h(n);
}
};