leetcode-96-Unique Binary Search Trees

来源:互联网 发布:李升平知乎 编辑:程序博客网 时间:2024/05/20 23:58

问题

题目:[leetcode-96]

思路

catalan数。至于怎么分析的,参考自己的lintcode刷题里对这个题的解释。基本方法是固定根节点之后,剩下的N-1个节点,依次在左右两支展开。

代码

class Solution {public:    int numTrees(int n) {        return catalan(n);    }private:    int catalan(int n) {        vector<int> dp(n+1, 0);        dp[0] = dp[1] = 1;        for(int i = 2; i <= n; ++i) {            for(int j = 0; j < i; ++j) {                dp[i] += dp[j]*dp[i-1-j];            }        }        return dp[n];    }};
原创粉丝点击