【题目】

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]相关推荐

  1. LeetCode:Unique Binary Search Trees

    问题描写叙述: Given n, how many structurally unique BST's (binary search trees) that store values 1...n? F ...

  2. LeetCode Unique Binary Search Trees(dp)

    问题:给出一个正整数n,求由1到n所组成的二叉搜索树的个数 思路: 动态规划法.用f(i)表示由1到i所组成的二叉搜索树的个数.状态转移方程为 初始状态为 具体代码参考: https://github ...

  3. LeetCode Unique Binary Search Trees II(递归或者dp)

    问题:给出一个正整数,要求构造由1到n组成的所有的二叉搜索树 思路: 1.递归法 在求从1到n的二叉搜索树时,枚举中间值i(1到n),求[1,i-1]和[i+1,n]分别构成的二叉搜索树,然后根据左右 ...

  4. 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/ 题解 题是 ...

  5. 【重点 递归构造二叉树】LeetCode 95. Unique Binary Search Trees II

    LeetCode 95. Unique Binary Search Trees II 本博客转载自:[1]https://segmentfault.com/a/1190000007443961 [2] ...

  6. 【卡塔兰数】LeetCode 96. Unique Binary Search Trees

    LeetCode 96. Unique Binary Search Trees 本博客转载自:http://www.cnblogs.com/grandyang/p/4299608.html Solut ...

  7. Unique Binary Search Trees II -- LeetCode

    原题链接:  http://oj.leetcode.com/problems/unique-binary-search-trees-ii/   这道题是求解所有可行的二叉查找树,从 Unique Bi ...

  8. LeetCode 96. Unique Binary Search Trees

    96. Unique Binary Search Trees Given n, how many structurally unique BST's (binary search trees) tha ...

  9. 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 ...

最新文章

  1. Spring学习总结(18)——Spring整合Mysql数据库一主多从、多主多从配置
  2. python3.6.8卸载_Mac 卸载 彻底删除 自己下载的 python 3
  3. svn checkout的时候报E000022错误
  4. PDMS二次开发应用案例——PipelineTool
  5. matlab有限元分析教程,Matlab做有限元分析
  6. 软件产品管理系统有哪些?12个最佳产品管理工具盘点
  7. Java保留2位小数 JS保留2位小数 Java截取2位小数 Math.round((1.0/3)*100)/100.0
  8. 随笔记:组合模式之 宏命令(macro command)
  9. 最新WIN10系统封装教程2019系列(七)——封装
  10. 系统无法联系dhcp服务器,Win10专业版解决无法联系DHCP服务器错误[Ipconfig / Renew]方法...
  11. 人人网、7K7K、178等各网站迅雷地址。最新得到的各种URL。
  12. IDEA Unable to import maven project: See logs for details (maven的坑)
  13. Foxmail中配置O365邮箱和Hotmail邮箱
  14. mybatis 查询出的日期没有时分秒
  15. 2022 AI 岗位风向标
  16. 系统扫描修复cmd命令
  17. 攻防世界密码学 浅尝
  18. win10 任务栏图标变为空白、图标丢失的解决方法
  19. Electron加载网页失败,监听事件处理
  20. mysql查询bom清单_Oracle EBS-SQL (BOM-12):BOM清单查询

热门文章

  1. c# 大数据量比较时-方案
  2. jQuery closest()和parent()、parentes()之间的区别
  3. hook 驱动 截屏
  4. Devexpress 重新编译以后 重新生成DEMO
  5. C#中Cache的使用
  6. stm32断言的使用
  7. Apple-Watch开发2 APPIcon设置
  8. Operation condition And timing analysis
  9. uifont 字体详解
  10. 字符串移位:如“abcdefghi”右移2位后变成“cdefghiab”