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

一开始是想用递归解决,但看了标签是dp问题,就想了一下, 数目为k的bst,其每个 0 ~ k - 1都可以分成两个区间, 然后又可以生成bst, 所以k的bst种类数等于取k左侧与右侧可划分成bst的乘机的总和,额,有点绕口额,代码清晰一点, 看代码:

 class Solution {
public:
int numTrees(int n) {
vector<int> ret;
if(n == ) return ;
ret.reserve(n + );
ret[] = ;
for(int i = ; i <= n; ++i){
if(i < ){
ret[i] = i;
continue;
}
for(int j = ; j < i; ++j){
ret[i] += ret[j] * ret[i - j - ];
}
}
return ret[n];
}
};

最新文章

  1. 结合实例详细介绍encodeURI()、encodeURIComponent()、decodeURI()、decodeURIComponent()使用方法
  2. JS中匿名函数$(function(){ })和(function(){})()的区别
  3. 关于Kendo UI的使用心得
  4. 操作SSIS之前的准备工作
  5. Hibernate-缓存
  6. How to Tune Java Garbage Collection--reference
  7. [二]SpringMvc实践-注解
  8. 【IPC进程间通信之四】数据复制消息WM_COPYDATA
  9. Java IO面试
  10. underscore.js 源码阅读 一 整体结构
  11. java编程小记
  12. silverlight属性改变事件通知
  13. mybatis 插入一条记录 参数为map的写法
  14. BZOJ3561 DZY Loves Math VI 数论 快速幂 莫比乌斯反演
  15. SparseArray类
  16. 通过本地Git部署网站到WebSite
  17. JQuery选择器和DOM的操作-入门学习
  18. php do while循环实例
  19. 如何使用 Visual C# 2005 或 Visual C# .NET 向 Excel 工作簿传输数据
  20. 曲演杂坛--重建索引后,还使用混合分区么?(Are mixed pages removed by an index rebuild?)

热门文章

  1. 卸载SQL Server 2008 (R2)
  2. [转载]Spring中MultipartHttpServletRequest实现文件上传
  3. mysql数据库补充知识7 索引原理与慢查询优化
  4. Hibernate学习---检索优化
  5. token的生成和应用
  6. 主攻ASP.NET.4.5 MVC4.0之重生:二维码生成和谷歌二维码
  7. 乌云TOP 10 简单介绍
  8. 机器学习相关知识整理系列之二:Bagging及随机森林
  9. java写出图形界面
  10. CentOS/Linux 卸载MATLAB