zoukankan      html  css  js  c++  java
  • [Leetcode] 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

    Solution:

    递归,由于是二叉查找树,先选择任一结点根结点,假设为结点i,则[1,i-1]范围的结点为结点i的左子树结点,[i+1,n]范围的结点为结点i的右子树结点,则以结点i为根结点的BST个数为左,右子树可构成BST个数的乘积,基于这个思路,可以写出以下递归程序。

     1 public class Solution {
     2     public int numTrees(int n) {
     3         if (n < 3)
     4             return n;
     5         return numTrees(1, n);
     6     }
     7     private int numTrees(int start, int end) {
     8         // TODO Auto-generated method stub
     9 
    10         if (start >= end)
    11             return 1;
    12         int result = 0;
    13         for (int i = start; i <= end; ++i) {
    14             result += numTrees(start, i - 1) * numTrees(i + 1, end);
    15         }
    16         return result;
    17     }
    18 }
    
    

     ---------------------------------------------------------------------------------------------------

    20150216

     1 public class Solution {
     2     public int numTrees(int n) {
     3         int[] res=new int[n+1];
     4         res[0]=1;
     5         res[1]=1;
     6         for(int i=2;i<=n;++i){
     7             for(int j=0;j<i;++j){
     8                 res[i]+=res[j]*res[i-j-1];
     9             }
    10         }
    11         return res[n];
    12     }
    13 }

    http://blog.csdn.net/linhuanmars/article/details/24761459 

  • 相关阅读:
    Ubuntu下ClickHouse安装
    redis.conf配置详解(转)
    php使用sftp上传文件
    ubuntu下安装nginx1.11.10
    cookie和session的区别
    linux下Redis主从复制
    linux-ubuntu 安装配置Redis
    php的常量
    Ubuntu防火墙配置
    技术资料
  • 原文地址:https://www.cnblogs.com/Phoebe815/p/4028918.html
Copyright © 2011-2022 走看看