leetcode 96. Unique Binary Search Trees (dp)

来源:互联网 发布:python socket ttl 编辑:程序博客网 时间:2024/05/04 09:06

题意:

是leetcode 95. Unique Binary Search TreesII的简单版,95题需要存储每棵树的结构,本题只需要计算所有树的个数。

思路:

因为只需计算个数,所以1~n的所有BST的总数和2~n+1的所有BST的总数是相同的,即结点个数一致的所有可能的BST数相是固定的。由上一题的思路,dp[n]就等于N个结点都作为根节点时可能的BST个数之和。

java代码:

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


原创粉丝点击