LeetCode 96. Unique 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 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
二分查找树的定义是,左子树节点均小于root,右子树节点均大于root~~~
所以可以用递推的方法,把v[i]表示i个数能够构成的二叉搜索树的个数~~
初始化边界值是 v[0]=1,v[1]=1,v[2]=2~~~
当i>=3的时候,若以j为root结点,v[j-1]等于root结点左边的j-1个结点能构成的BST个数~~
v[i-j]等于root结点右边i-j个结点能构成的BST个数~//j+1~i的种数和0~i-j的种数一样。。所以就是v[i-j]~
所以v[j-1] * v[i-j]等于以j为root结点能构成的BST种数~~~
j可以取1~i中的任意一个值,把这些所有计算出来的总数相加就是v[i]的值~~~~
所以 for(int j = 1; j <= i; j++) {
v[i] += v[j-1] * v[i-j];
}
最后返回的值是v[n]的值,表示1~n能组成的BST的个数~~~~
class Solution {
public:int numTrees(int n) {vector<int> v(n+1);v[0] = 1;for(int i = 1; i <= n; i++) {v[i] = 0;if(i <= 2) {v[i] = i;} else {for(int j = 1; j <= i; j++) {v[i] += v[j-1] * v[i-j];}}}return v[n];}
};
LeetCode 96. Unique Binary Search Trees相关推荐
- 【卡塔兰数】LeetCode 96. Unique Binary Search Trees
LeetCode 96. Unique Binary Search Trees 本博客转载自:http://www.cnblogs.com/grandyang/p/4299608.html Solut ...
- [LeetCode]: 96: Unique Binary Search Trees
题目: Given n, how many structurally unique BST's (binary search trees) that store values 1...n? For e ...
- [swift] LeetCode 96. Unique Binary Search Trees
Given n, how many structurally unique BST's (binary search trees) that store values 1-n? For example ...
- leetcode 95. Unique Binary Search Trees II | 96. Unique Binary Search Trees
95. Unique Binary Search Trees II https://leetcode.com/problems/unique-binary-search-trees-ii/ 题解 题是 ...
- 【重点 递归构造二叉树】LeetCode 95. Unique Binary Search Trees II
LeetCode 95. Unique Binary Search Trees II 本博客转载自:[1]https://segmentfault.com/a/1190000007443961 [2] ...
- 96. Unique Binary Search Trees(I 和 II)
Given n, how many structurally unique BST's (binary search trees) that store values 1-n? For example ...
- LeetCode:96. Unique Binary Search Trees(找出独一无二搜索树)
文章最前: 我是Octopus,这个名字来源于我的中文名--章鱼:我热爱编程.热爱算法.热爱开源.所有源码在我的个人github :这博客是记录我学习的点点滴滴,如果您对 Python.Java.AI ...
- 96. Unique Binary Search Trees 不同的二叉搜索树
Title 给定一个整数 n,求以 1 - n 为节点组成的二叉搜索树有多少种? 示例: 输入: 3 输出: 5 解释: 给定 n = 3, 一共有 5 种不同结构的二叉搜索树: 1 3 3 2 1\ ...
- 96. Unique Binary Search Trees【力扣】
题意理解 给定一个整数n,从1到n序列可组成多少个不同的二叉树? 问题分析 用动态规划 状态量是dp[i]表示i个整数可组成不同的二叉树的数量. 状态转移方程 dp[i] = sum(dp[j-1] ...
最新文章
- openpose_net随机搜索网络源代码
- yellow weasel
- 【知识图谱】如何构建知识体系:知识图谱搭建的第一步
- 查询oracle中用户的角色,oracle中用户角色的查询和授权
- 前端学习(2362):上拉加载
- Dockerfile语法简介(精)
- 什么是气泡图?怎样用Python绘制?怎么用?终于有人讲明白了
- C#中输入法全角转换半角
- 微信十年,领取纪念勋章头像!
- 【CF-1285E】Delete a Segment(区间处理(并集)----思维)
- 互联网从此没有 BAT
- SpringBoot的Upd服务端,客户端案列
- 透镜成像、眼球成像、小孔成像原理
- python tkinter 实现图片格式批量转换小工具
- 多智能体强化学习【Windows\Ubuntu 安装星际争霸Ⅱ】
- 设置JSP页脚版权标识
- win7已经阻止此发行者在您的计算机上运行软件,Win7系统提示Windows已经阻止此软件因为无法验证发行者解决方法...
- Qt编写4K/8K大分辨率播放器(8K占用1%CPU)
- python_考勤时间
- GitHub Pages 快速搭建个人主页