给定一个整数 n,求以 1 ... n 为节点组成的二叉搜索树有多少种?

示例:

输入: 3 输出: 5 解释: 给定 n = 3, 一共有 5 种不同结构的二叉搜索树:

假设n个节点存在二叉排序树的个数是G(n),1为根节点,2为根节点,...,n为根节点,当1为根节点时,其左子树节点个数为0,右子树节点个数为n-1,同理当2为根节点时,其左子树节点个数为1,右子树节点为n-2,所以可得G(n) = G(0)*G(n-1)+G(1)*(n-2)+...+G(n-1)*G(0)

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

最新文章

  1. HTML和XHTML的区别
  2. SharePoint 2013 自定义扩展菜单
  3. python: jquery实现全选 反选 取消
  4. SQLServer2008 和SQLServer2008 R2版本导出 数据库结构和数据sql
  5. 保持UIImagePickerController后导航栏风格统一
  6. Flask框架学习笔记(API接口管理平台 V1.0)
  7. maven本地仓库.m2文件夹路径讲解
  8. Winform上传下载文件代码
  9. Visual Studio 2010 旗舰版安装图解
  10. linux ssh scp无密码登录
  11. css兼容问题与实践归纳总结
  12. struts2和struts1认识
  13. OVS vxlan 底层结构分析 - 每天5分钟玩转 OpenStack(148)
  14. FPGA设计思想(持续更新)
  15. Pashmak and Flowers
  16. vue-cli 项目踩坑 npm install 时出错
  17. 分享几个有意思的css js工具网站
  18. Mudo C++网络库第八章学习笔记
  19. Linux上 发布.Net Core
  20. Centos7更改网卡名称Eth0并配置静态IP

热门文章

  1. 主机入侵防御系统(HIPS)分析
  2. VS2010-MFC(对话框:设置对话框控件的Tab顺序)
  3. 通过数据库中的表,使用 MyEclipse2017的反向生成工具--&gt;hibernate反转引擎引擎(MyEclipse2017自带的插件) 来反转生成实体类和对应的映射文件
  4. ASP.NET MVC生命周期与管道模型
  5. @Value取值为NULL的解决方案
  6. jmeter参数化之用户参数
  7. linux与window文件传输(使用ssh+putty)
  8. HZOI20190822模拟29题解
  9. Django项目:CMDB(服务器硬件资产自动采集系统)--01--01CMDB获取服务器基本信息
  10. 苹果系统 IOS 12 的H5 BUG :键盘把页面顶上去了,底下留有一块空白区域