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

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

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
 
 
Solution 1:  递归
1 class Solution { 2 public: 3     int numTrees(int n) { 4         if(n == 0) 5             return 1; 6         else if(n == 1) 7             return 1; 8         else 9         {10             int count = 0;11             for(int i = 0; i <= (n-1)/2; i ++)12             {13                 if(i < n-1-i)14                     count += 2*numTrees(i)*numTrees(n-1-i);15                 else16                     count += numTrees(i)*numTrees(n-1-i);17             }18             return count;19         }20     }21 };

 

Solution 2: dynamic programming . Base case: n==0, n==1时,f(n)==1, f(n)=∑f(i)*f(n-i-1)。即以第i个为根节点,左右子树数目相乘 

class Solution {public:    int numTrees(int n) {        if(n<2)return 1;                vector
v(n+1, 0); v[0]=1; v[1]=1; for(int i=2;i

 

 

转载于:https://www.cnblogs.com/irun/p/4719720.html

你可能感兴趣的文章
AVPlayerViewController视频播放器
查看>>
玩转VIM编辑器-自动补全
查看>>
事件委托
查看>>
MATLAB数据处理快速学习教程
查看>>
I00002 打印九九乘法表
查看>>
I00010 打印1到输入数之间的回文数
查看>>
HDU2106 decimal system
查看>>
用hexo在github上搭建自己的静态博客
查看>>
关系运算
查看>>
MFC对话框控件访问的七种方式
查看>>
synchronized(this)与synchronized(class)
查看>>
IE6兼容改造中的反思
查看>>
ABBYY FineReader 12没你想得那么简单
查看>>
实习日记7.12
查看>>
02scikit-learn模型训练
查看>>
5. 常用控件(一)
查看>>
Java内存区域与内存溢出异常
查看>>
实时流式计算框架Storm 0.9.0发布通知(中文版)
查看>>
devGridView第一列显示行号
查看>>
UISwitch的常见属性
查看>>