(java)Unique Binary Search Trees
2016-03-06 19:34
351 查看
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.
思路:当i为根节点时,0~i-1都在i的左子树啊,i+1~n都在i的右子树上,而左右子树又都是BST树,根据排列组合的知识,如果左子树有m种可能,右子树有n种可能,则总共有m*n种可能
所以nums
=nums[i]*nums[j] i+j=n-1
代码如下(已通过leetcode)
public class Solution {
public int numTrees(int n) {
int[] res=new int[n+1];
res[0]=1;
res[1]=1;
for(int i=2;i<=n;i++) {
int j=0;
while(j<i) {
res[i]+=res[j]*res[i-1-j];
j++;
}
}
return res
;
}
}
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
思路:当i为根节点时,0~i-1都在i的左子树啊,i+1~n都在i的右子树上,而左右子树又都是BST树,根据排列组合的知识,如果左子树有m种可能,右子树有n种可能,则总共有m*n种可能
所以nums
=nums[i]*nums[j] i+j=n-1
代码如下(已通过leetcode)
public class Solution {
public int numTrees(int n) {
int[] res=new int[n+1];
res[0]=1;
res[1]=1;
for(int i=2;i<=n;i++) {
int j=0;
while(j<i) {
res[i]+=res[j]*res[i-1-j];
j++;
}
}
return res
;
}
}
相关文章推荐
- POJ 3458 Colour Sequence
- hdu 5063 Operation the Sequence(Bestcoder Round #13)
- StringBuffer和StringBuilder存在的作用是什么
- blade and soul pvp guide
- blade and soul races guide
- UI设计 - iOS
- UI设计 - Web
- UI设计 - PPT
- STL与泛型编程<三>:deque
- UIActivityIndicatorView头文件学习
- IOS-UIDynamic
- iOS手势之UISwipeGestureRecognizer的正确用法
- POJ 2785 4 Values whose Sum is 0
- 关于UITableView中cell的重用问题
- UITextField实现PlaceHolder
- Unexpected Exception caught setting 'x' on class xx:Error setting expression 'xx' with value ['x',]
- UIActivity头文件学习
- swif之UITableViewCell和UITableView常见属性复习
- POJ 3061 Subsequence【尺取法】
- 错误svn: The repository at 'svn://xxxxx' has uuid 'XXXX', but the WC has 'XXXX'“