算法系列——不同的二叉搜索树(Unique Binary Search Trees)

Posted BridgeGeorge

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法系列——不同的二叉搜索树(Unique Binary Search Trees)相关的知识,希望对你有一定的参考价值。

题目

给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。

解答

public class Solution 
    public int numTrees(int n) 
        // dp[i] 表示 i个结点 组成二叉搜索树数量
        // f(i) 表示 i为root 的
        //dp[i]=sum(dp[j]*dp[i-j])  j[0,i];
        int[] dp=new int[n+1];
        int result=0;
        dp[0]=1;
        dp[1]=1;
        for(int i=1;i<=n;i++)
            for(int j=0;j<=i;j++)
                dp[i]+=dp[j]*dp[i-j-1];
            
        

        
        return dp[n];
    

以上是关于算法系列——不同的二叉搜索树(Unique Binary Search Trees)的主要内容,如果未能解决你的问题,请参考以下文章

95. 不同的二叉搜索树 II

95. 不同的二叉搜索树 II

96. 不同的二叉搜索树

LeetCode 96 Unique Binary Search Trees不同的二叉搜索树的个数

Leetcode 96. 不同的二叉搜索树

LeetCode 96. 不同的二叉搜索树 | Python