博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode 96. Unique Binary Search Trees
阅读量:7071 次
发布时间:2019-06-28

本文共 564 字,大约阅读时间需要 1 分钟。

这道题和树基本没什么关系,完全就是 Catalan Number。

给定一个数 i ,

1作为根,左边有 0 个节点,右边有 i-1 个节点

2作为根,左边有 1 个节点,右边有 i-2 个节点

...

i 作为根,左边有 i-1 个节点,右边有 0 个节点

记 dp[i] 为给定 i 时的个数,dp[n] 为所求

根据上述分析,得出递推公式 dp[i] = sum_{j=0}^{i-1} dp[j] * dp[i-j-1]

base case: dp[0] = 1  因为空也算一种情况

 

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

 

转载于:https://www.cnblogs.com/hankunyan/p/9532791.html

你可能感兴趣的文章
SQLSERVER——Log Explorer 数据恢复
查看>>
oracle job最简单创建代码
查看>>
常识 跳转读取js函数
查看>>
Linux内核中的jiffies及其作用介绍及jiffies等相关函数详解
查看>>
Unity3D 事件处理函数
查看>>
unix编程高级io之epool
查看>>
linux系统硬件配置查看方法
查看>>
[转]PHP函数的实现原理及性能分析
查看>>
格式化数字
查看>>
linux 硬链接 软连接
查看>>
Redis配置详解-客户端缓冲区 output buffer
查看>>
Linux命令操作
查看>>
flutter 视频播放 VideoPlayController
查看>>
SQOOP导入mysql数据库乱码
查看>>
Hibernate_持久类的要求
查看>>
actor-sdk打包成javascript脚本文件
查看>>
IOS----IPhone中发送短信
查看>>
Redis数据备份与恢复
查看>>
Android Dialog里的EdiText为何不自动弹出输入法
查看>>
自己封装的cocos2dx中封装pomelo并导出给javascript使用
查看>>