96. Unique Binary Search Trees

来源:互联网 发布:app交互设计软件 编辑:程序博客网 时间:2024/06/06 02:52

TLE代码 但是写的太好看了 好想留下他

class Solution {public:    int numTrees(int n) {        return go(1, n);    }    int go(int start, int ending){        if(ending <= start) return 1;        int t = 0;        for(int i = start; i <= ending; ++i){            t += go(start, i-1) * go(i+1, ending);        }        return t;    }};


在他的基础上加了个dp就好了

class Solution {public:    int numTrees(int n) {        vector<int> dp(n+1, -1);        return go(dp, 1, n);    }    int go(vector<int> &dp, int start, int ending){        if(ending <= start) return 1;        if(-1 != dp[ending - start + 1])            return dp[ending - start + 1];        int t = 0;        for(int i = start; i <= ending; ++i){            t += go(dp, start, i-1) * go(dp, i+1, ending);        }        dp[ending - start + 1] = t;        return t;    }};


原创粉丝点击