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

    题目:

    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

    代码:

    class Solution {
    public:
        int numTrees(int n) {
            vector<int> dp(n+1,0);
            dp[0] = 1;
            dp[1] = 1;
            for ( size_t i = 2; i < n+1; ++i ){
                for ( size_t j = 0; j < i; ++j ){
                    dp[i] += dp[j] * dp[i-j-1];
                }
            }
            return dp[n];
        }
    };

    tips:

    1. ‘左子树可能数*右子树可能数’为所有以元素i为根节点的BST个数。

    2. 如果总个数是n,则把根节点为1~n的情况都累加一遍,就是不重复的BST个数(由于要用到之前的计算结果,因此一维dp很合适)

    ===========================================

    第二次过这道题,这题其实放DP里更好一些。

    注意初始化的时候,一般都初始化为0。dp[0] dp[1]特殊处理。

    class Solution {
    public:
        int numTrees(int n) {
                vector<int> dp(n+1,0);
                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-j-1];
                    }
                }
                return dp[n];
        }
    };
    class Solution {
    public:
        int numTrees(int n) {
                vector<int> dp(n+1,0);
                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-j-1];
                    }
                }
                return dp[n];
        }
    };
  • 相关阅读:
    sass接触
    css 文字超出部分显示省略号(原)
    vue组件
    字节流
    File类、递归
    异常
    静态导入、可变参数、Collections集合工具类、集合嵌套
    Map接口
    Set接口
    List接口
  • 原文地址:https://www.cnblogs.com/xbf9xbf/p/4507913.html
Copyright © 2011-2022 走看看