leetcode 刷题之路 49 Unique Binary Search Trees
来源:互联网 发布:python 中文注释 编辑:程序博客网 时间:2024/05/01 15:24
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
Given 题目要求求数字1~n构成的二叉查找树共有多少种。
采用动态规划求解。使用dp数组保存中间计算结果,dp[i]表示1~i个数字构造的二叉查找树个数,dp[0],dp[1]为1,对于任意的数字0,1,2...i,可以这样构造一个查找二叉树,以数字j为根节点,数字1~j-1构造其左子树,数字j+1~i构造其右子树,j的取值为1~i,对于每个j,构造的查找二叉树可能有dp[i-j-1]*dp[j]种,所有j对应的二叉树种类数加起来就是dp[i]的值,可以看出,这是一个递归求解的问题,要求的n=i时的结果,必须知道n=0.......n-1时的结果,故可以采用递归求解,但是直接使用递归求解时间复杂度会呈指数增长,这里采用动态规划的方法,保存每次的计算结果,避免了大量运算,时间复杂度为O(n^2)。
AC code:
class Solution {public: int numTrees(int n) { int *dp=new int[n+1]; memset(dp,0,(n+1)*sizeof(int)); dp[0]=dp[1]=1; for(int i=2;i<=n;i++) { for(int j=0;j<=i-1;j++) { dp[i]=dp[i]+dp[j]*dp[i-1-j]; } } int ret=dp[n]; delete []dp; return ret; }};
0 0
- leetcode 刷题之路 49 Unique Binary Search Trees
- leetcode 刷题之路 50 Unique Binary Search Trees II
- LeetCode 之 Unique Binary Search Trees
- LeetCode之Unique Binary Search Trees
- LeetCode之Unique Binary Search Trees
- leetcode 之 Unique Binary Search Trees
- LeetCode之Unique Binary Search Trees
- Leetcode 之 Unique Binary Search Trees
- LeetCode之Unique Binary Search Trees
- LeetCode之Unique Binary Search Trees II
- Leetcode之unique-binary-search-trees
- 【Leetcode】之Unique Binary Search Trees
- LEETCODE之Unique Binary Search Trees
- [leetcode刷题系列]Unique Binary Search Trees
- [leetcode刷题系列]Unique Binary Search Trees II
- LeetCode刷题笔录Unique Binary Search Trees
- LeetCode刷题笔录Unique Binary Search Trees II
- LeetCode: Unique Binary Search Trees
- POJ 3422 Kaka's Matrix Travels | 费用流
- 动态和静态树,ajax读取数据
- 关于概率dp的个人理解与总结
- HBase 之 TableDescriptors FSTableDescriptors HTableDescriptor HColumnDescriptor
- 获得MAC地址
- leetcode 刷题之路 49 Unique Binary Search Trees
- Spring bean id相同覆盖的问题解决
- 一转倾心 OPPO N1 mini降价 OPPO N1 mini值不值得购买介绍
- [LeetCode]Median of Two Sorted Arrays
- you must restart adb and eclipse的相关解决办法
- hduoj2018(母牛的故事)
- Reveal使用步骤和 破解Revealapp的试用时间限制
- Maven详解之------maven版本管理
- 小白之小结