leetcode 96. Unique Binary Search Trees
来源:互联网 发布:石青软件官网 编辑:程序博客网 时间:2024/04/29 07:32
题目:
思路:
以k为根节点的树,左子树为【1,…,K - 1】,右子树为【K + 1,…,N】,定义f(n)为【1,…,n】能产生不同的二叉搜索树的个数,则以K为根节点能产生f(k - 1) * f(n - k)种不同的树。
显然f(0) = f(1) = 1。
f(2) = f(0) * f(1) + f(1) * f(0)
f(3) = f(0) * f(2) + f(1) * f(1) + f(2) * f(0) //分别以1,2,3为根
由此可以推出递推式
AC解:
class Solution {public: int numTrees(int n) { vector<int> f(n + 1, 0); f[0] = f[1] = 1; for (int i = 2; i <= n; i++) for (int k = 1; k <= i; k++) f[i] += f[k - 1] * f[i - k]; return f[n]; }};
阅读全文
0 0
- LeetCode 96. Unique Binary Search Trees II
- [LeetCode]96.Unique Binary Search Trees
- 96. Unique Binary Search Trees Leetcode
- [Leetcode] 96. Unique Binary Search Trees
- LeetCode --- 96. Unique Binary Search Trees
- [leetcode] 96.Unique Binary Search Trees
- [leetcode] 96. Unique Binary Search Trees
- 96. Unique Binary Search Trees LeetCode
- <LeetCode OJ> 96. Unique Binary Search Trees
- [LeetCode]96. Unique Binary Search Trees
- [LeetCode]96. Unique Binary Search Trees
- LeetCode 96. Unique Binary Search Trees
- *LeetCode 96. Unique Binary Search Trees
- Leetcode 96. Unique Binary Search Trees
- LeetCode *** 96. Unique Binary Search Trees
- LeetCode 96. Unique Binary Search Trees
- LeetCode 96.Unique Binary Search Trees
- Leetcode:96. Unique Binary Search Trees
- hibernate-缓存算法-20
- Web性能优化之动态合并JS/CSS文件并缓存客户端
- 拦截一条有序广播
- 二叉树、二叉堆
- Android VR Player(全景视频播放器) [7]:视频列表的实现-网络视频
- leetcode 96. Unique Binary Search Trees
- c#教程与视频教程类专题资料免费下载整理合集
- 洛谷Oj-01迷宫-广度优先搜索
- Spring入门案例 IoC
- hunnu11466—找数字2
- 创建曲线偏置根据指定矢量
- 项目实训第四周(2)--问卷填写模块编码之问卷内容显示
- 项目分析
- Docker volume分析