lintcode 163 不同的二叉查詢樹

2022-03-29 14:43:04 字數 556 閱讀 7876

給出 n,問由 1...n 為節點組成的不同的二叉查詢樹有多少種?

樣例給出n = 3,有5種不同形態的二叉查詢樹:

標籤卡特蘭數 動態規劃

思路

參考部落格 的遞推思路,使用卡特蘭數,另外使用動態規劃,使用一維陣列 dp[i] 儲存由 i 個節點組成的不同的二叉查詢樹的種類

卡特蘭數的遞推公式為:

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

code

class solution 

vectordp(n + 1, 0);

dp[0] = dp[1] = 1;

for (int i = 2; i < n + 1; i++)

}return dp[n];}};

LintCode 不同的二叉查詢樹

給出 n,問由 1 n 為節點組成的不同的二叉查詢樹有多少種?給出n 3,有5種不同形態的二叉查詢樹 1 3 3 2 1 3 2 1 1 3 2 2 1 2 3solution 對於該問題我們可以使用動態規劃來求解。對於動態規劃問題我們需要確定問題的狀態和狀態轉換方程。首先我們來確定問題的狀態 給定...

Lintcode 不同島嶼的個數

給定乙個由0和1組成的非空的二維網格,乙個島嶼是指四個方向 包括橫向和縱向 都相連的一組1 1表示陸地 你可以假設網格的四個邊緣都被水包圍。找出所有不同的島嶼的個數。如果乙個島嶼與另乙個島嶼形狀相同 不考慮旋轉和翻摺 我們認為這兩個島嶼是相同的。11 1和 1 11是不同的島嶼,因為我們不考慮旋轉和...

LintCode 不同的路徑114

有乙個機械人的位於乙個 m n 個網格左上角。機械人每一時刻只能向下或者向右移動一步。機械人試圖達到網格的右下角。問有多少條不同的路徑?example 1 input n 1,m 3 output 1 explanation only one path to target position.exam...