Description

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

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

思路

  • 动态规划。
  • 其实也就是看用这么多相同节点能构造多少个这种结构

代码

class Solution {
public:
    int numTrees(int n) {
        if(n <= 2) return n;
        
        vector<int> dp(n + 1, 0);
        dp[0] = 1;
        dp[1] = 1;
        dp[2] = 2;
        for(int i = 3; i <= n; ++i){
            for(int j = 0; j < i; ++j)
                dp[i] += dp[j] * dp[i - j - 1];
        }
        
        return dp[n];
    }
};
内容来源于网络如有侵权请私信删除
你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!

相关课程

3690 0元 限免
3730 0元 50元 限免