zoukankan      html  css  js  c++  java
  • Unique Binary Search Trees

    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

    方法一:递归(超时)

     1 class Solution {
     2 public:
     3     int numTrees(int n) {
     4         int sum = 0;
     5         if(n<=1) return 1;
     6         for(int i=0;i<n;i++){
     7             sum +=numTrees(i)*numTrees(n-1-i);
     8         }
     9        return sum;
    10     }
    11 };

    方法二:动态规划(AC)

     1 class Solution {
     2 public:
     3     int numTrees(int n) {
     4         int num[n+1];
     5         fill(num,num+n+1,0);
     6         num[0] = 1;
     7         num[1] = 1;
     8         num[2] = 2;
     9         for(int i=3; i<=n; i++){
    10             for(int j=1; j<=i; j++)
    11                 num[i]+=num[j-1]*num[i-j];
    12            
    13         }
    14         return num[n];
    15     }
    16 };
  • 相关阅读:
    git命令
    Linux基础知识手册
    Linux系统编程
    A
    Subsequences in Substrings Kattis
    G
    K
    K
    C
    E
  • 原文地址:https://www.cnblogs.com/wxquare/p/5034615.html
Copyright © 2011-2022 走看看