首先要畫個草圖觀察規律,n = 1 ,2, 3 時,結果分別為1,2,5。分析當 n = 3時,bst的種類構成:根節點為1,根節點為2,根節點為3。當根節點為1時,有兩種形態
當根節點為2時,有一種形態
當根節點為3時,有兩種形態
所以n為3時的bst數量為:根節點為1的bst個數 + 根節點為2的bst個數+根節點為3的bst個數。設dp【i】為從1—i組成的bst個數。dp[3] = dp[2] * dp[0] + dp[1] * dp[1]+
dp[0] * dp[2]
進而可得動態轉移方程 dp[i] += dp[j - 1] * dp[i - j]
1時間複雜度o(n2),空間複雜度o(n)class
solution 10}
11return
dp[n];12}
13 };
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 ...