【Leetcodeシリーズ] [アルゴリズム]異なる[培地]バイナリ探索木(数学を解決するために)

トピック:

トピックリンク:  https://leetcode-cn.com/problems/unique-binary-search-trees/

 

問題解決のアイデア:

沿ってバイナリ検索の異なる種類の数もカタロニア語の数として知られているカトレア番号は、一般的な用語の式であります:

C_ {N + 1} = C_ {0} C_ {N} + C_ {1} C_ {N  -  1} + ... + C_ {N} C_ {0} = \和_ {I = 0} ^ { N} C_ {I} C_ {N  -  I} = \ FRAC {2(2N + 1)} {N + 2} C_ {N} \約\ FRAC {4 ^ {N}} {N ^ {\ FRAC { 2} {3}} \ SQRT {\ PI}}

直接式に、あなたはどんなのを得ることができます

 

コードの実装:

class Solution:
    def numTrees(self, n: int) -> int:
        res = 1
        for i in range(n):
            res = res * 2 * (2 * i + 1) // (i + 2)
        
        return res

 

公開された100元の記事 ウォンの賞賛4 ビュー1461

おすすめ

転載: blog.csdn.net/songyuwen0808/article/details/105396796