Leetcode 96 不同的二叉搜尋樹

2022-05-11 12:28:55 字數 1101 閱讀 4396

感謝leetcode官方送給的聖誕帽,merry christmas ! 唔哈~~~~

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

示例:

輸入: 3

輸出: 5

解釋:給定 n = 3, 一共有 5 種不同結構的二叉搜尋樹:

分析:

此題可以採用動態規劃來計算種類數

令f(n)表示,n個節點可以構成的二叉搜尋樹的種類數;

當n=1時,只有一種結構,f(n)=1;

當n=2時,兩個節點分別作為根節點,剩下的乙個節點數目和,f(1)+f(1)

當n=3時,第乙個節點作為根節點,剩下兩個節點能夠組成,f(2)

第二個節點作為根結點時,前乙個和後乙個的和,f(1)*f(1)

第三個節點作為根節點是,前兩個節點構成,f(2)

因此,當f(3)=f(2)+f(1)*f(1)+f(2)=5

當n=4時,f(4)=f(3)+f(1)*f(2)+f(2)*f(1)+f(3)=14

故,我們令f(0)=1,以便於計算

遞推式如下

f(n)=f(0)*f(n-1)+f(1)*f(n-2)+...+f(n-2)*f(1)+f(n-1)

**如下:

1

class

solution 20}

21return

a[n];22}

23 };

另一種數學解法,直接返回c(2n,n) / (n+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 ...