Lintcode163 Unique Binary Search Trees solution 题解
来源:互联网 发布:xbox360 知乎 编辑:程序博客网 时间:2024/06/08 06:10
【题目描述】
Given n, how many structurally unique BST s (binary search trees) that store values 1...n?
给出n,问由 1...n为节点组成的不同的二叉查找树有多少种?
【题目链接】
www.lintcode.com/en/problem/unique-binary-search-trees/
【题目解析】
设dp[i]表示共有i个节点时,能产生的BST树的个数
n == 0 时,空树的个数必然为1,因此dp[0] = 1
n == 1 时,只有1这个根节点,数量也为1,因此dp[1] = 1
n == 2时,有两种构造方法,dp[2] = dp[0] * dp[1] + dp[1] * dp[0]
n == 3时,构造方法如题目给的示例所示,dp[3] = dp[0] * dp[2] + dp[1] * dp[1] + dp[2] * dp[0]
同时,当根节点元素为 1, 2, 3, 4, 5, ..., i, ..., n时,基于以下原则的BST树具有唯一性:
以i为根节点时,其左子树构成为[0,...,i-1],其右子树构成为[i+1,...,n]构成
因此,dp[i] = sigma(dp[0...k] * dp[k+1...i]) 0 <= k < i - 1
【参考答案】
www.jiuzhang.com/solutions/unique-binary-search-trees/
阅读全文
0 0
- Lintcode163 Unique Binary Search Trees solution 题解
- Lintcode164 Unique Binary Search Trees II solution 题解
- Unique Binary Search Trees题解
- [LeetCode] Unique Binary Search Trees, Solution
- [LeetCode] Unique Binary Search Trees II, Solution
- LeetCode题解:Unique Binary Search Trees
- [题解][Leetcode][Unique Binary Search Trees]
- 【LeetCode】【Python题解】Unique Binary Search Trees
- LeetCode题解:Unique Binary Search Trees
- LeetCode题解:Unique Binary Search Trees
- LeetCode题解:Unique Binary Search Trees II
- LeetCode 96. 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
- FRAMEWORK 添加新的接口
- CSS实现单行、多行文本溢出显示省略号(…)
- Tomcat的类加载器
- CodeForces 893A Chess For Three
- X君和T君关于通用学习机的对话
- Lintcode163 Unique Binary Search Trees solution 题解
- Unity3D默认的快捷键
- 数组、链表、堆栈、队列和树
- 关于win7电脑使用ARCGIS9.3时的问题
- 总结函数声明提升,闭包,作用域,this
- 1039. 到底买不买(20)
- 关系型数据库的ACID指的是什么?
- mysql切换数据库时会报错:ERROR 1044 (42000): Access denied for user 'root'@'localhost' to database 'mysql'
- 割草机