leetcode 96. Unique Binary Search Trees

原创 2016年06月01日 17:14:11

题目内容
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=1时,ans=1
当n=2,ans=2
当n=3,ans=5
当n=4,ans=14

根据构建二叉查找树的特点,我们发现,当我们选择某个数为root结点的时候。则该root可以组成的结构情况为,所有left的情况×所有right的情况。所以我们可以构建dp的过程。
以n=5为例。当以1为root,假设dp[0]=1,则结果为count+=dp[0]*dp[4];当以2为root时,count+=dp[1]*dp[3];当以3为root时,count+=dp[2]*dp[2];当以4为root时,count+=dp[3]*dp[1];当以5为root时,count+=dp[4]*dp[0];

通过如上的过程我们可以知道状态转移方程为:dp[level]+=dp[level-root]*dp[root-1];

代码如下:

public class Solution {
    public int numTrees(int n) {
        int[] dp=new int[n+1];
        dp[0]=1;
        dp[1]=1;
        for(int level=2;level<=n;level++)
            for(int root=1;root<=level;root++){
                dp[level]+=dp[level-root]*dp[root-1];
            }
        return dp[n];
    }
}

Leetcode-96.Unique Binary Search Trees

题目: Given n, how many structurally unique BST's (binary search trees) that store values 1...n? Fo...

LeetCode 96. Unique Binary Search Trees 解题报告

LeetCode 108. Convert Sorted Array to Binary Search Tree 解题报告

Leetcode 96 Unique Binary Search Trees(独一的二叉搜索树)

一,问题描述 1,给定一个n,返回所有的二叉搜索树的总数。2,例如: 输入:n=4 输出:14输入:n=3 输出:5输入:n=5 输出:42输入:n=6; 输出:132输入: n=2 输...

<LeetCode OJ> 96. Unique Binary Search Trees

96. Unique Binary Search Trees My Submissions Question Total Accepted: 75913 Total Submissions: ...

[leetcode]96. Unique Binary Search Trees(Java)

https://leetcode.com/problems/unique-binary-search-trees/#/description Given n, how many ...

leetcode_middle_45_96. Unique Binary Search Trees

题意: 给一个n,问能存储从1到n 的二叉排序树有多少个。 分析: 我们对前几个比较小的树,举例子画图分析。我们一定要搞清楚,为什么3个结点就是5个树,4个结点就是14个树。多画了几个树之后,很明显...
  • pusude
  • pusude
  • 2017年02月15日 14:08
  • 109

[leetcode] 96.Unique Binary Search Trees

题目: Given n, how many structurally unique BST’s (binary search trees) that store values 1…n?For exa...

LeetCode 95, 96. Unique Binary Search Trees i. ii

1. 题目描述 95.Given n, generate all structurally unique BST’s (binary search trees) that store values...

LeetCode --- 96. Unique Binary Search Trees

题目链接:Unique Binary Search Trees Given n, how many structurally unique BST's (binary search trees) t...
  • makuiyu
  • makuiyu
  • 2015年04月14日 19:49
  • 655

leetcode 95&96. Unique Binary Search Trees

96. Unique Binary Search Trees Given n, how many structurally unique BST's (binary search trees) tha...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:leetcode 96. Unique Binary Search Trees
举报原因:
原因补充:

(最多只允许输入30个字)