【leetcode】【96】Unique Binary Search Trees
来源:互联网 发布:画图软件图标 编辑:程序博客网 时间:2024/06/07 14:57
一、问题描述
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
二、问题分析
一看到这个题,第一想到的就是n个节点的不同的二叉树有多少种,即采用Catalan公式,该公式的递推表达式为h(n)= h(0)*h(n-1)+h(1)*h(n-2) + ... + h(n-1)h(0) (其中n>=2),当n=0或1时,h(n)=1.当然查资料发现它还有其它的形式,比如h(n)=((4*n-2)/(n+1))*h(n-1);以及h(n)=C(2n,n)/(n+1) (n=1,2,3,...),我采用了第一种表达式的解法,比较简单的DP。
三、Java AC代码
public int numTrees(int n) {int[] d = new int[n+1];d[0] = 1;d[1] = 1;for (int i = 2; i <= n; i++) {d[i] = catalan(i, d);}return d[n];}public int catalan(int n,int[] d){int res = 0;int tmp = 0;while(tmp<n){res+= d[tmp]*d[n-1-tmp];tmp++;}return res;}
0 0
- LeetCode 96 Unique Binary Search Trees II
- [leetcode 96] Unique Binary Search Trees
- Leetcode NO.96 Unique Binary Search Trees
- leetcode || 96、Unique Binary Search Trees
- [Leetcode 96, Medium] Unique Binary Search Trees
- leetcode-96 Unique Binary Search Trees
- Unique Binary Search Trees - LeetCode 96
- Leetcode 96 Unique Binary Search Trees
- Leetcode[96]-Unique Binary Search Trees
- Leetcode 96 Unique Binary Search Trees
- leetcode[96]:Unique Binary Search Trees
- [leetcode 96]Unique Binary Search Trees
- Leetcode # 96 Unique Binary Search Trees
- LeetCode(96) Unique Binary Search Trees
- [leetcode-96]Unique Binary Search Trees(c++)
- leetcode 96: Unique Binary Search Trees
- leetCode #96 Unique Binary Search Trees
- leetcode 95-96:Unique Binary Search Trees
- Java内存泄露原因详解
- OAuth的机制原理讲解及开发流程
- leetcode | Set Matrix Zeroes 牛客网 | 清除行列
- android 告别龟速,快速更新sdk
- 【LEETCODE】114-Flatten Binary Tree to Linked List
- 【leetcode】【96】Unique Binary Search Trees
- MyEclipse 自动注释模板
- Mac OS X 下搭建 Java 开发环境
- 寻找一个数组中的鞍点
- HDU 4504 DP
- Android模拟器加速,BIOS中VT-x选项不可改,Intel硬件加速软件的安装
- 【小松教你手游开发】【面试必读(编程基础)】堆和栈的区别
- c++试炼
- 阅读学术论文的心得体会