首页 > 代码库 > [Leetcode]Unique Binary Search Trees
[Leetcode]Unique Binary Search Trees
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
[Thoughts]
这又是一道动态规划的题。看了http://blog.csdn.net/linhuanmars/article/details/24761459这里的思路,大意是它的数学模型刚好是一种叫卡特兰数的定义
这样就把问题划分为了子问题(动态规划解题的思路)
对于n个结点的二叉树,使用一个数组count[],存储n+1个元素(包括C0)
[Code]
public class Solution { public int numTrees(int n) { int[] count = new int[n+1]; count[0]=1; count[1]=1; for(int i=2;i<=n;i++){ for(int j=0;j<i;j++){ count[i]+=count[j]*count[i-j-1]; } } return count[n]; }}
[Leetcode]Unique Binary Search Trees
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。