Unique Binary Search Trees
来源:互联网 发布:外勤365软件 编辑:程序博客网 时间:2024/05/16 12:48
Given n, how many structurally unique 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 3num[i]表示i的二叉搜索树的个数. 它的数目是由子树有多少不同的根结点决定的.
For example,
i=0, count[0]=1 //empty tree
i=1, count[1]=1 //one tree
i=2, count[2]=count[0]*count[1] // 0 is root
+ count[1]*count[0] // 1 is root
i=3, count[3]=count[0]*count[2] // 1 is root
+ count[1]*count[1] // 2 is root
+ count[2]*count[0] // 3 is root
i=4, count[4]=count[0]*count[3] // 1 is root
+ count[1]*count[2] // 2 is root
+ count[2]*count[1] // 3 is root
+ count[3]*count[0] // 4 is root
..
i=n, count[n] = sum(count[0..k]*count[k+1...n]) 0 <= k < n-1
可以用动态规划来解决。
public int numTrees(int n) { int[] num=new int[n+1];num[0]=1;num[1]=1;for(int i=2;i<=n;i++){for(int j=0;j<=i-1;j++)num[i]+=num[j]*num[i-j-1];}return num[n]; }
- Unique Binary Search Trees
- Unique Binary Search Trees
- Unique Binary Search Trees
- Unique Binary Search Trees
- Unique Binary Search Trees
- Unique Binary Search Trees
- Unique Binary Search Trees
- Unique Binary Search Trees
- Unique Binary Search Trees
- Unique Binary Search Trees
- Unique Binary Search Trees
- Unique Binary Search Trees
- Unique Binary Search Trees
- Unique Binary Search Trees
- Unique Binary Search Trees
- Unique Binary Search Trees
- Unique Binary Search Trees
- Unique Binary Search Trees
- 最长递增子序列(LIS)
- 【Android进阶学习】监听EditText的变化
- Linux下端口被占用解决
- 网页浏览器:WebKit框架
- linux添加、删除用户
- Unique Binary Search Trees
- rtsp详解
- 轻松java学习之路4
- Web项目中 .classpath、.mymetadata、.project文件的作用详解
- HashMap源码分析
- k<<=1具体是什么意思?
- 不同drawable文件夹的区别
- Linux cp复制
- Oracle中的CHR()函数与ASCII()函数