[Serie Leetcode] [algoritmo] diferentes [medio] árbol binario de búsqueda (las matemáticas para resolver)

tema:

enlaces a los temas:  https://leetcode-cn.com/problems/unique-binary-search-trees/

 

Ideas de resolución de problemas:

El número de diferentes tipos de búsqueda binaria, en línea con número Cattleya, también conocido como número catalán , fórmula general plazo es:

C_ {n + 1} = C_ {0} C_ {n} + C_ {1} C_ {n - 1} + ... + C_ {n} C_ {0} = \ sum _ {i = 0} ^ { n} C_ {i} C_ {n - i} = \ frac {2 (2n + 1)} {n + 2} C_ {n} \ aprox \ frac {4 ^ {n}} {n ^ {\ frac { 2} {3}} \ sqrt {\ pi}}

Directamente en la fórmula, se puede obtener cualquiera de

 

la implementación del código:

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

 

Publicados 100 artículos originales · ganado elogios 4 · Vistas 1461

Supongo que te gusta

Origin blog.csdn.net/songyuwen0808/article/details/105396796
Recomendado
Clasificación