Maison >développement back-end >tutoriel php >. Trouver la plus grande valeur dans chaque rangée d'arbre
515. Trouvez la plus grande valeur dans chaque rangée d'arbres
Difficulté :Moyen
Sujets : Arbre, recherche en profondeur d'abord, recherche en largeur d'abord, arbre binaire
Étant donné la racine d'un arbre binaire, renvoie un tableau de la plus grande valeur dans chaque ligne de l'arbre (indexé à 0).
Exemple 1 :
Exemple 2 :
Contraintes :
Solution :
Le problème "Trouver la plus grande valeur dans chaque ligne d'arbre" nécessite d'identifier la plus grande valeur présente à chaque niveau (ligne) d'un arbre binaire. Étant donné un arbre binaire, le but est de parcourir l’arbre ligne par ligne et de collecter la valeur maximale de chaque ligne. Ce problème implique des techniques fondamentales de traversée d'arbres telles que la Breadth-First Search (BFS) ou la Depth-First Search (DFS).
L'approche la plus simple pour trouver la plus grande valeur dans chaque ligne consiste à utiliser BFS :
Alternativement, DFS peut également être utilisé :
Implémentons cette solution en PHP : 515. Trouvez la plus grande valeur dans chaque rangée d'arbres
val = $val; $this->left = $left; $this->right = $right; } } /** * @param TreeNode $root * @return Integer[] */ function largestValues($root) { ... ... ... /** * go to ./solution.php */ } // Example usage: $root = new TreeNode(1); $root->left = new TreeNode(3); $root->right = new TreeNode(2); $root->left->left = new TreeNode(5); $root->left->right = new TreeNode(3); $root->right->right = new TreeNode(9); print_r(largestValues($root)); // Output: [1, 3, 9] ?>Explication:
Entrée : [1,3,2,5,3,null,9]
- Niveau 0 : Valeurs des nœuds : [1] → Maximum : 1.
- Niveau 1 : Valeurs des nœuds : [3, 2] → Maximum : 3.
- Niveau 2 : Valeurs des nœuds : [5, 3, 9] → Maximum : 9. #### Sortie : [1, 3, 9].
Complexité temporelle
Entrée : root = [1,3,2,5,3,null,9]
Sortie : [1, 3, 9].
Cette solution basée sur BFS calcule efficacement la plus grande valeur de chaque ligne d'arbre avec une complexité temporelle linéaire. Il gère efficacement les grands arbres, les valeurs négatives et les cas limites comme les arbres vides.
Liens de contact
Si vous avez trouvé cette série utile, pensez à donner une étoile au référentiel sur GitHub ou à partager la publication sur vos réseaux sociaux préférés ?. Votre soutien signifierait beaucoup pour moi !
Si vous souhaitez du contenu plus utile comme celui-ci, n'hésitez pas à me suivre :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!