解题思路:

因为二叉搜索树的左右子树均为二叉搜索树。输入整数n,求其所有二叉搜索树的总数,就是求根节点分别为1,2, ..., n的二叉搜索树的总和。

假设 i 的二叉搜索树的总数为 f(i),当根节点为 j 时,其二叉搜索树的总数为其左子树总数乘以右子树总数,即 f(j - 1) * f(n - j)。

所以我们只要记录一个数组nums就可以了。

class Solution {
public:int numTrees(int n) {vector<int> nums(n+1, 0);nums[0] = 1;nums[1] = 1;for(int i = 2; i <= n; i++){for(int j = 1; j <= i; j++){nums[i] = nums[i] + nums[j - 1] * nums[i - j];}}return nums[n];}
};

Leetcode 96. 不同的二叉搜索树 解题思路及C++实现相关推荐

  1. Leetcode 96. 不同的二叉搜索树

    Leetcode 96. 不同的二叉搜索树 1.问题分析 2.问题解决 3.总结 1.问题分析 题目链接:https://leetcode-cn.com/problems/unique-binary- ...

  2. LeetCode 96不同的二叉搜索树95不同的二叉搜索树Ⅱ

    微信搜一搜:bigsai 算法文章题解全部收录在github仓库bigsai-algorithm 关注回复进群即可加入力扣打卡群,欢迎划水.近期打卡: LeetCode 92反转链表Ⅱ&93复 ...

  3. LeetCode 96. 不同的二叉搜索树(DP)

    1. 题目 给定一个整数 n,求以 1 - n 为节点组成的二叉搜索树有多少种? 示例:输入: 3 输出: 5 解释: 给定 n = 3, 一共有 5 种不同结构的二叉搜索树:1 3 3 2 1\ / ...

  4. leetcode - 96. 不同的二叉搜索树

    96. 不同的二叉搜索树 ------------------------------------------ 给定一个整数 n,求以 1 - n 为节点组成的二叉搜索树有多少种? 示例: 输入: 3 ...

  5. Leetcode 109. 有序链表转换二叉搜索树 解题思路及C++实现

    方法一:将链表转为数组来处理 解题思路: 因为链表不好处理,所以我先把链表处理成数组,因为是一个升序数组,所以直接将中间的数当成根结点,然后对左半部分的节点和右半部分的节点进行递归构建二叉搜索树. 在 ...

  6. LeetCode 96. 不同的二叉搜索树(Unique Binary Search Trees )

    题目描述 给定一个整数 n,求以 1 ... n 为节点组成的二叉搜索树有多少种? 示例: 输入: 3 输出: 5 解释: 给定 n = 3, 一共有 5 种不同结构的二叉搜索树:1 3 3 2 1\ ...

  7. [leetcode] 96. 不同的二叉搜索树 +[补充] 不同的二叉树,不同形态的二叉树的个数----catalan数

    leetcode官方的题解:https://leetcode-cn.com/problems/unique-binary-search-trees/solution/bu-tong-de-er-cha ...

  8. leetcode 96. 不同的二叉搜索树(Unique Binary Search Trees)

    目录 题目描述: 示例: 解法: 题目描述: 给定一个整数 n,求以 1 ... n 为节点组成的二叉搜索树有多少种? 示例: 输入: 3 输出: 5 解释: 给定 n = 3, 一共有 5 种不同结 ...

  9. LeetCode 96——不同的二叉搜索树

    1. 题目 2. 解答 以 \(1, 2, \cdots, n\) 构建二叉搜索树,其中,任意数字都可以作为根节点来构建二叉搜索树.当我们将某一个数字作为根节点后,其左边数据将构建为左子树,右边数据将 ...

最新文章

  1. 【Python】序列解包 and * 和 ** 的区别
  2. Vivado中IP核的xci, xcix, .dcp文件的区别
  3. OpenStack Nova 高性能虚拟机之 CPU 绑定
  4. java程序员修炼之道
  5. msdn library api调用问题
  6. Bundle savedInstanceState的作用
  7. GDCM:gdcm::PDBHeader的测试程序
  8. mysql如何修改所有的definer
  9. Linux内核Crash分析
  10. 职场中什么样的员工最易发展?
  11. 用java写四则混合运算,JAVA写的四则混合运算-JSP教程,Java技巧及代码
  12. opencv+Java+android 灰度图像
  13. Lync Server 2013 安装准备工具 for Win 2008 R2
  14. 模拟实现和深入理解Node Stream内部机制
  15. WORD必学技巧:使用项目编号
  16. 最好用的资源管理器软件——Directory Opus
  17. Maven安装与Maven HelloWorld入门实例
  18. 什么是Python爬虫?一篇文章带你全面了解爬虫
  19. 0 win10重装partition_win10换win7,U盘装机错误,Error:partition 0 ended too near怎么回事?怎么修?...
  20. win7搜索文件内容

热门文章

  1. openstack上传镜像失败_制作云window10镜像
  2. win服务器系统程序原因分析
  3. Java Map hashCode深究
  4. helm滚动更新mysql_kubernetes使用helm滚动更新
  5. mongodb 持久化 mysql_scrapy数据持久化存储(MySQL、MongoDB)
  6. 编程十年 (2):前传2——哪有这么牛逼的游戏机?
  7. AsyncLocal 与 async await
  8. 刨根问底——Handler
  9. python学习笔记(05)
  10. php的filesystem基本函数的学习(1)