zoukankan      html  css  js  c++  java
  • Unique Binary Search Trees 分类: Leetcode 2014-12-07 11:30 81人阅读 评论(0) 收藏

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

    For 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

    遇到树的问题首先考虑递归能不能解,这道题用递归理论上是可以暴力破解的,只需要用循环递归求解左子树数为m,右子树为n-m。但是递归求解每次都得计算到n=3的情况再层层回代,时间复杂度太高。很自然地想到用动态规划求解这个问题,其实思路上是一样的,区别在于动态规划不用此次都算。

    class Solution {
    public:
        
        int numTrees(int n) {
            if(n==1) return 1;
            if(n==2) return 2;
            int temp,i,j;
         
            int *p = new int[n + 1];
            p[0]=1;
            p[1]=1;
            p[2]=2;
            for(i=3;i<=n;i++)
            {
                temp=0;
                for(j=0;j<=i-1;j++)
                {
                    temp+=(p[j]*p[i-j-1]);
                }
                p[i]=temp;
            }
            return p[n];
      
        }
    };





    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    502 bad gateway错误的网关
    nodejs发展
    edgejs
    websocket nodejs实例
    nodejs原码
    node案例
    node 与php整合
    node c#
    jquery
    express
  • 原文地址:https://www.cnblogs.com/learnordie/p/4656982.html
Copyright © 2011-2022 走看看