Unique Binary Search Trees
来源:互联网 发布:iphone 使用电脑网络 编辑:程序博客网 时间:2024/06/05 10:04
Given n, how many structurally unique BST's (binarysearch 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
解析:我们设f(n)表示n个节点所能构造的unique BST个数.
f(0)=1; f(1)=1;
当n>1时候有
f(n)=f(n-1)*f(0)+f(n-2)*f(1)……f(0)*f(n-1);
可以看出有子结构性质,我们利用动态规划的思想,使用备份录,记载f(n),所以可以得到一个O(n2)的复杂度,可以接受.(应该可以直接推导出f(n)与f(0)和f(1)的关系,可惜本人能力有限,没推倒出来).
classSolution {public: int numTrees(int n) { int value[2000]; memset(value,0,sizeof(value)); value[0]=1; value[1]=1; for (int i=2; i<=n; ++i){ for (int j=0; j<i; ++j){ value[i]+=value[j]*value[i-j-1]; } } return value[n]; }};
0 0
- Unique Binary Search Trees
- Unique Binary Search Trees
- Unique Binary Search Trees
- Unique Binary Search Trees
- Unique Binary Search Trees
- Unique Binary Search Trees
- Unique Binary Search Trees
- Unique Binary Search Trees
- Unique Binary Search Trees
- Unique Binary Search Trees
- Unique Binary Search Trees
- Unique Binary Search Trees
- Unique Binary Search Trees
- Unique Binary Search Trees
- Unique Binary Search Trees
- Unique Binary Search Trees
- Unique Binary Search Trees
- Unique Binary Search Trees
- oracle分组后合并其中一个字段
- x86 x64 ia64 区别
- linux下安装mapserver
- app后端设计--总目录
- X264编码h264
- Unique Binary Search Trees
- OCP-1Z0-053-200题-114题-674
- [C#] 面向对象
- OCP-1Z0-053-200题-113题-158
- HBase 0.94 master启动过程源码分析
- CSBG群聊记录02(群号92210001)
- Single Number II
- style、 currentStyle、 runtimeStyle介绍
- 没有人能够一味地淡定,没有人能够一味地忍受