Unique Binary Search Trees-计算表示相同序列的不同BST个数
- 题目描述:
- 给定整数n,计算存储序列为1...n的结构唯一的BST的个数
- 题目来源:
- http://oj.leetcode.com/problems/unique-binary-search-trees/
- 题目分析:
- 对于一个表示序列为1...n的BST,根元素可以是1到n中的任何一个数,当根元素为 i 时,左子树为表示1...i - 1的BST,右子树为表示i + 1...n的BST,所以,原问题可以通过子问题的解得到
- 定义状态f(i,j),状态f(i,j)为表示序列i...j的结构唯一的BST的个数,通过枚举根的值可以得到:
- f(i,j) = sum(f(i,k - 1) * f(k + 1, j))(i <= k <= j)
- 时间复杂度:O(n^3)
- 示例代码:
int dp[][]; int numTrees(int n) {
memset(dp, , sizeof(dp));
for(int i = ; i <= n; ++i)
dp[i][i - ] = dp[i + ][i] = ; for(int len = ; len <= n; ++len) {
for(int i = ; i <= n - len + ; ++i) {
for(int k = i; k <= i + len - ; ++k) {
dp[i][i + len - ] += dp[i][k - ] * dp[k + ][i + len - ];
}
}
} return dp[][n];
}
Unique Binary Search Trees-计算表示相同序列的不同BST个数的更多相关文章
- Unique Binary Search Trees I&II——给定n有多少种BST可能、DP
Given n, how many structurally unique BST's (binary search trees) that store values 1...n? For examp ...
- LeetCode:Unique Binary Search Trees I II
LeetCode:Unique Binary Search Trees Given n, how many structurally unique BST's (binary search trees ...
- [LeetCode] Unique Binary Search Trees II 独一无二的二叉搜索树之二
Given n, generate all structurally unique BST's (binary search trees) that store values 1...n. For e ...
- 【LeetCode】95. Unique Binary Search Trees II
Unique Binary Search Trees II Given n, generate all structurally unique BST's (binary search trees) ...
- 96. Unique Binary Search Trees
题目: Given n, how many structurally unique BST's (binary search trees) that store values 1...n? For e ...
- 52. leetcode 96. Unique Binary Search Trees
96. Unique Binary Search Trees Given n, how many structurally unique BST's (binary search trees) tha ...
- leetcode -day28 Unique Binary Search Trees I II
1. Unique Binary Search Trees II Given n, generate all structurally unique BST's (binary search t ...
- 96. Unique Binary Search Trees (Tree; DP)
Given n, how many structurally unique BST's (binary search trees) that store values 1...n? For examp ...
- LeetCode解题报告—— Unique Binary Search Trees & Binary Tree Level Order Traversal & Binary Tree Zigzag Level Order Traversal
1. Unique Binary Search Trees Given n, how many structurally unique BST's (binary search trees) that ...
随机推荐
- 【Python】Selenium元素定位错误之解决办法
当使用class定位元素时发现报错: 错误信息:selenium.common.exceptions.InvalidSelectorException: Message: Compound class ...
- 循序渐进学Python 1 安装与入门
1 安装 2 使用 2.1 运行程序 3 艺搜参考 by 2013年10月16日 安装 Windows安装版,源码,帮助文档: 使用 打开开始菜单中的Python GUI启动Python解释器: 启动 ...
- Memcache安装与使用
一.资源下载 安装memcached 之前必需要先安装 libevent 分别在libevent和memcached的官网下载安装包libevent-1.4.14b-stable.tar.gz和mem ...
- iOS 10 的杂碎资料
兼容iOS 10 资料整理笔记 1.Notification(通知) 自从Notification被引入之后,苹果就不断的更新优化,但这些更新优化只是小打小闹,直至现在iOS 10开始真正的进行大 ...
- API自动化测试利器——Postman
自从开始做API开发之后,我就在寻找合适的API测试工具.一开始不是很想用Chrome扩展,用的WizTools的工具,后来试过一次Postman之后就停不下来了,还买了付费的Jetpacks.推出T ...
- 用nvm管理windows nodejs时用npm全局安装的插件无法调用的解决方案
在环境变量中啊新建变量NODE_PATH赋值为prefix设置的地址即 prefix=D:\Users\xxx\AppData\Roaming\nodejs\npm-global 然后把%NODE_P ...
- ridge regression 无惩罚,导致预测结果空间过大而无实用价值
[ biased regression methods to reduce variance---通过偏回归来减小方差] https://onlinecourses.science.psu.edu/s ...
- Python爬虫-- selenium库
selenium库 selenium 是一套完整的web应用程序测试系统,包含了测试的录制(selenium IDE),编写及运行(Selenium Remote Control)和测试的并行处理(S ...
- 我的Android进阶之旅------>Ubuntu下不能识别Android设备的解决方法
Bus 001 Device 006: ID 1b20:0c81 MStar Semiconductor, Inc. 今天不知道Ubuntu发了什么疯,昨天还用的好好的,今天就突然不能识别我 ...
- 我的Java开发学习之旅------>工具类:Java获取字符串和文件进行MD5值
ps:这几天本人用百度云盘秒传了几部大片到云盘上,几个G的文件瞬秒竟然显示"上传成功"!这真让我目瞪口呆,要是这样的话,那得多快的网速,这绝对是不可能的,也许这仅是个假象.百度了一 ...