不同的二叉搜尋樹 python

2021-09-20 07:16:37 字數 638 閱讀 1959

題目描述:

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

示例:輸入:3

輸出:5

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

"""#思路:動態規劃:g(n)表示有n個節點可以得到的二叉排序樹的個數;f(i)表示以i為根的二叉搜尋樹的個數

#由以上可知:g(n)=f(1)+f(2)+f(3)+...+f(n);f(i)=g(i-1)g(n-i)

dp = [0]*(n+1)

dp[0] = 1

dp[1] = 1

for i in range(2,n+1):

for j in range(1,i+1):

dp[i] = dp[i] + dp[j-1]*dp[i-j]

return dp[n]

菜鳥一枚,**僅供參考,如有問題,望指正~

不同的二叉搜尋樹

題目 力扣 解題思路 可以看注釋 class solution return helper choice,k choice表示選擇,按大小順序排列,k表示取第k個序列,從1開始計數 public string helper listchoice,int k 以某一元素開頭的序列個數,一共有n n個 ...

不同的二叉搜尋樹

leetcode演算法 演算法題 動態規劃 dp i 代表的是長度為i的序列所能構成多少個不同的二叉搜尋樹 f x,i 代表的是以x為根,長度為i所能構成的不同的二叉搜尋樹的種類 那麼dp i f 1,i f 2,i f i,i 同時f x,i 的公式也出來了1 2 3 4 x i 1 i 可以發現...

不同的二叉搜尋樹

不同的二叉搜尋樹 給定乙個整數 n,求以 1 n 為節點組成的二叉搜尋樹有多少種?示例 輸入 3 輸出 5 解釋 給定 n 3,一共有 5 種不同結構的二叉搜尋樹 1 3 3 2 1 3 2 1 1 3 2 2 1 2 3動態規劃 假設n個節點存在二叉排序樹的個數是g n 令f i 為以i為根的二叉...