Unique Binary Search Trees

来源:互联网 发布:linux中sem wait函数 编辑:程序博客网 时间:2024/05/22 18:01

使用动态规划,见Leetcode题解分析,时间O(n^2),空间O(n)。代码如下:

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

9.02最新代码:

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

0 0