96. 不同的二叉搜索树

Posted Debroon

tags:

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

96. 不同的二叉搜索树

 


题目

传送门:https://leetcode.cn/problems/unique-binary-search-trees/


 


算法设计:动态规划

如果整数 1 ~ n 中的 k 作为根节点值,如 n = 3 时,k = 1、2、3:

  • 1 为根节点时BST数量
  • 2 为根节点时BST数量
  • 3 为根节点时BST数量
  • 定义状态 dp[i],为 i 为根节点时BST数量

那 dp[i] 从哪里来?

class Solution 
public:
    int numTrees(int n) 
        vector<int> dp(n + 1);
        dp[0] = 1;
        for (int i = 1; i <= n; i++) 
            for (int j = 1; j <= i; j++) 
                dp[i] += dp[j - 1] * dp[i - j];     
        return dp[n];
    
;

以上是关于96. 不同的二叉搜索树的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode 96. 不同的二叉搜索树

Leetcode 96.不同的二叉搜索树

LeetCode 96.不同的二叉搜索树

96. 不同的二叉搜索树

leetcode 96. 不同的二叉搜索树

动态规划-96. 不同的二叉搜索树