Aquí está la solución O (n): Encuentre el tamaño del BST más grande en un árbol binario
La idea básica para encontrar el BST más grande en un árbol binario es que para que un árbol con root como currentNode sea un BST válido, sus subárboles izquierdo y derecho deben ser BST válidos, el valor de currentNode debe ser mayor que el valor máximo El nodo de su subárbol izquierdo y el valor de currentNode tiene que ser menor que el nodo de valor mínimo de su subárbol derecho
Para verificar estas condiciones, devolvemos el valor del nodo de valor máximo, el nodo de valor mínimo y la variable booleana que indica si el árbol es BST válido o no de cada subárbol. También devolvemos el tamaño de un subárbol si es un BST válido o devolvemos -1 si no es un BST válido. Usando estas variables devueltas de los subárboles izquierdo y derecho, podemos verificar en el CurrentNode si el árbol con su raíz como currentNode es un BST válido o no. Si el árbol es un BST válido, calculamos el tamaño del árbol usando (1 + sizeOfLeftSubtree + sizeOfRightSubtree) y lo devolvemos junto con otras variables mencionadas anteriormente. Si no es un BST válido, devolvemos -1 junto con otras variables.
- ¿Qué tan común es que se le pida que implemente la correspondencia de expresiones regulares en la entrevista?
- ¿La revisión del código se aprendió en la universidad con roles (moderador, lector, inspector, etc.) realmente utilizados en Google, Microsoft y Amazon?
- ¿Cómo debo prepararme para las preguntas de concurrencia que se hacen en las entrevistas de Dropbox?
- ¿Cómo encontrar el número de subcadenas que son anagramas de palíndromos en una cadena en tiempo lineal?
- Programación dinámica (DP): dos jugadores juegan el siguiente juego: eligen un número aleatorio N (menos de 2 mil millones) y luego, a partir de 1, se turnan para multiplicar el número del turno anterior con 2 o 9 (su elección). Quien llegue a N primero gana. ¿Determinar ganador del juego de números 2/9?
El siguiente diagrama ilustra los valores devueltos de cada subárbol.
Espero que esto ayude.