Unique Binary Search Trees
来源:互联网 发布:香港 知乎 编辑:程序博客网 时间:2024/04/28 11:08
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
dp[i] 记录长度为i 时二叉树的种类数。
从1 到 n计算各长度的值,当计算长度为len是所有 节点数小于len的二叉树的值都是已知的。
从1 到len 选择一个数k作为根,所有小于k的数做为左子树,大于k的数做右子树,扫描时所有子树的长度为lenchild为[0 -- len - 1]所以所有dp[lenchild]的值都是已知的
左树可能的情况为dp[k - 1],右树可能的情况为dp[len - k],则dp[len] = {sum(dp[k - 1] * dp[len - k])| k = (123...len)}; dp[0] = 1 表示空树!
class Solution {public: int numTrees(int n) { int *dp = new int[n + 5]; dp[0] = 1; for(int i = 1; i <= n; i++) { dp[i] = 0; for(int j = 1; j <= i; j++) { dp[i] += dp[j - 1] * dp[i - j]; } } int rtv = dp[n]; delete[] dp; return rtv; }};
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
- ubuntu13.04下配置hustoj
- 浅析人脸检测之Haar分类器方法
- 2015.1.6,第三节课Android控件ViewFlipper自动切换效果
- 黑马程序员——Java基础---数据类型
- hdoj1022
- Unique Binary Search Trees
- Output result string after numbers addition and subtraction
- android之handle使用在消息机制使用
- [POJ 3734] Blocks (矩阵快速幂、组合数学)
- typedef的用法总结
- 【机房重构】——模板方法解决组合查询
- java 运行时异常 RuntimeException 和编译时异常的区别
- mysql导入导出csv
- 用Python写个简单的推荐系统(一)