zoukankan      html  css  js  c++  java
  • LeeCode

    题目:

    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. 没有节点,BST (Binary Search Tree)为1个, 即空树

    2. 有一个节点,BST为1个,即自身为根节点

    3. 有二个节点,BST为2个,1为root,左为空,右为2;2为root,左为1,右为空,其实就是dp[0]*dp[1] + dp[1]*dp[0]

          1                  2

                           /

             2            1

    4. 有三个节点

     1               1                  2                       3             3
                                     /                      /              / 
       3               2              1       3             2             1
     /                                                     /                 
    2                      3                               1                    2

    可以推出dp[3] = dp[0]*dp[2] + dp[1]*dp[1] + dp[2]*dp[0]

    package bst;
    
    public class UniqueBinarySearchTrees {
    
        public int numTrees(int n) {
            int[] dp = new int[n + 1];
            dp[0] = 1;
            dp[1] = 1;
            for (int i = 2; i <= n; ++i) {
                for (int j = 0; j < i; ++j) {
                    dp[i] += dp[j] * dp[i - 1 - j];
                }
            }
            return dp[n];
        }
        
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            UniqueBinarySearchTrees u = new UniqueBinarySearchTrees();
            System.out.println(u.numTrees(3));
        }
    
    }
  • 相关阅读:
    airflow 安装问题
    ACM-单词接龙
    ACM-AK吧!少年
    ACM-Alice and Bob
    ACM-Satellite Photographs
    ACM-Subset sum
    ACM-Special Array
    数据挖掘-回归分析
    数据库原理-数据库系统的结构
    数据库原理-几种数据模型
  • 原文地址:https://www.cnblogs.com/null00/p/5102387.html
Copyright © 2011-2022 走看看