LeetCode: Unique Binary Search Trees [095]
【题目】
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
【题意】
给定一个数字n, 问用1,2,3,4,5...n这n个值,能构造多少棵合法的二叉搜索树
【思路】
对于给定[1,n]区间,先确定全部可能的根。如果根为k, 则该二叉树左子树的取值区间为[1, k-1]和右子树的取值区间[k+1, n]。
而二叉搜索搜索树的随意一个节点的左右子树也是二叉搜索树,因此我们须要确定[1,k-1]和[k+1, n]上构造的二叉搜索树的数目, 比方分别为left[k], right[k]。
则以k的根的二叉搜索树的数目即为,left[k]*right[k]
本题用递归来解决。
【代码】
class Solution {
public:int binaryTreeNums(int start, int end){//[start, end]区间上构造二叉树的数目if(start>=end)return 1; //start<end表示空子树, start==end表示叶子节点int treeNums=0;for(int root=start; root<=end; root++){int leftCount = binaryTreeNums(start, root-1); //计算左子树的数目int rightCount = binaryTreeNums(root+1, end); //计算右子树的数目treeNums+= leftCount*rightCount;}return treeNums;}int numTrees(int n) {if(n==0)return 0;return binaryTreeNums(1, n);}
};
转载于:https://www.cnblogs.com/mengfanrong/p/5152210.html
LeetCode: Unique Binary Search Trees [095]相关推荐
- LeetCode:Unique Binary Search Trees
问题描写叙述: Given n, how many structurally unique BST's (binary search trees) that store values 1...n? F ...
- LeetCode Unique Binary Search Trees(dp)
问题:给出一个正整数n,求由1到n所组成的二叉搜索树的个数 思路: 动态规划法.用f(i)表示由1到i所组成的二叉搜索树的个数.状态转移方程为 初始状态为 具体代码参考: https://github ...
- LeetCode Unique Binary Search Trees II(递归或者dp)
问题:给出一个正整数,要求构造由1到n组成的所有的二叉搜索树 思路: 1.递归法 在求从1到n的二叉搜索树时,枚举中间值i(1到n),求[1,i-1]和[i+1,n]分别构成的二叉搜索树,然后根据左右 ...
- 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] ...
- 【卡塔兰数】LeetCode 96. Unique Binary Search Trees
LeetCode 96. Unique Binary Search Trees 本博客转载自:http://www.cnblogs.com/grandyang/p/4299608.html Solut ...
- Unique Binary Search Trees II -- LeetCode
原题链接: http://oj.leetcode.com/problems/unique-binary-search-trees-ii/ 这道题是求解所有可行的二叉查找树,从 Unique Bi ...
- LeetCode 96. Unique Binary Search Trees
96. Unique Binary Search Trees Given n, how many structurally unique BST's (binary search trees) tha ...
- 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 ...
最新文章
- Spring学习总结(18)——Spring整合Mysql数据库一主多从、多主多从配置
- python3.6.8卸载_Mac 卸载 彻底删除 自己下载的 python 3
- svn checkout的时候报E000022错误
- PDMS二次开发应用案例——PipelineTool
- matlab有限元分析教程,Matlab做有限元分析
- 软件产品管理系统有哪些?12个最佳产品管理工具盘点
- Java保留2位小数 JS保留2位小数 Java截取2位小数 Math.round((1.0/3)*100)/100.0
- 随笔记:组合模式之 宏命令(macro command)
- 最新WIN10系统封装教程2019系列(七)——封装
- 系统无法联系dhcp服务器,Win10专业版解决无法联系DHCP服务器错误[Ipconfig / Renew]方法...
- 人人网、7K7K、178等各网站迅雷地址。最新得到的各种URL。
- IDEA Unable to import maven project: See logs for details (maven的坑)
- Foxmail中配置O365邮箱和Hotmail邮箱
- mybatis 查询出的日期没有时分秒
- 2022 AI 岗位风向标
- 系统扫描修复cmd命令
- 攻防世界密码学 浅尝
- win10 任务栏图标变为空白、图标丢失的解决方法
- Electron加载网页失败,监听事件处理
- mysql查询bom清单_Oracle EBS-SQL (BOM-12):BOM清单查询
热门文章
- c# 大数据量比较时-方案
- jQuery closest()和parent()、parentes()之间的区别
- hook 驱动 截屏
- Devexpress 重新编译以后 重新生成DEMO
- C#中Cache的使用
- stm32断言的使用
- Apple-Watch开发2 APPIcon设置
- Operation condition And timing analysis
- uifont 字体详解
- 字符串移位:如“abcdefghi”右移2位后变成“cdefghiab”