leetcode96 不同的二叉搜尋樹 動態規劃

2021-10-01 07:51:31 字數 818 閱讀 2956

給定乙個整數 n,求以 1 … n 為節點組成的二叉搜尋樹有多少種?

示例:

輸入:

3輸出:

5解釋:

給定 n =

3, 一共有 5 種不同結構的二叉搜尋樹:13

321 \ /

// \ \

321132/

/ \ \

2123

借助動態規劃的思想:

計算由n個節點組成的二叉搜尋樹,可以分別計算以每個節點為根的二叉搜尋樹的個數,最終相加即為求最終的結果。

class

solution

}return dp[n];}

};

說明:其實g(n)就是卡特蘭(catalan)函式,也就是說在求n個節點構成的二叉搜尋樹的個數時,直接用卡特蘭函式就可以

g (n

)=c2

nnn+

1g(n)=\frac}

g(n)=n

+1c2

nn​​

在**中借助前後兩項的關係來求較為方便

c n+

1=2(

2n+1

)n+2

cn(注

:c0=

1)

c_=\fracc_n (注:c_0=1)

cn+1​=

n+22

(2n+

1)​c

n​(注

:c0​=1)

leetcode 96 不同的二叉搜尋樹

給定乙個整數 n,求以 1 n 為節點組成的二叉搜尋樹有多少種?示例 輸入 3 輸出 5 解釋 給定 n 3,一共有 5 種不同結構的二叉搜尋樹 1 3 3 2 1 3 2 1 1 3 2 2 1 2 3n 0 表示,有0個點,那麼,可以組成的二叉查詢樹就乙個,那就是空樹 n 1表示,有1個點,那麼...

Leetcode 96 不同的二叉搜尋樹

給定乙個整數 n,求以 1 n 為節點組成的二叉搜尋樹有多少種?示例 輸入 3 輸出 5 解釋 給定 n 3,一共有 5 種不同結構的二叉搜尋樹 1 3 3 2 1 3 2 1 1 3 2 2 1 2 3主要參考 本題其實是構造卡特蘭數的應用,採用動態規劃思想求解。通過求解出子問題來實現最終問題的求...

leetcode96 不同的二叉搜尋樹

給定乙個整數 n,求以 1 n 為節點組成的二叉搜尋樹有多少種?示例 輸入 3 輸出 5 解釋 給定 n 3,一共有 5 種不同結構的二叉搜尋樹 1 3 3 2 1 3 2 1 1 3 2 2 1 2 3 我們把n 0 時賦為1,因為空樹也算一種二叉搜尋樹,假設n個節點存在二叉排序樹的個數是g n ...