Menu
CoddyTech

Path Sum

On te donne un arbre binaire stocké dans le tableau tree en ordre par niveaux, ainsi qu’un nombre targetSum. La racine se trouve à l’index 0, les enfants du nœud à l’index i se trouvent aux index 2*i+1 (à gauche) et 2*i+2 (à droite), -1 indique une position vide, et le tableau peut se terminer par des entrées -1 supplémentaires. Renvoie true si un chemin de la racine à une feuille contient des valeurs dont la somme est égale à targetSum, et false sinon. Une feuille est un nœud sans enfants : les deux positions de ses enfants sont vides.

Fonction

hasPathSum(tree: integer-array, targetSum: integer) → boolean
treeinteger-array
l’arbre binaire dans l’ordre par niveaux, avec -1 pour une position vide
targetSuminteger
le total qu’un chemin de la racine à une feuille doit atteindre
Renvoieboolean
vrai si un chemin de la racine à une feuille a une somme égale à targetSum, faux sinon

Contraintes

  • 1 ≤ tree.length ≤ 32767
  • Chaque tree[i] est égal à -1 ou à une valeur telle que 0 ≤ tree[i] ≤ 1000.
  • tree[0] n’est jamais -1, donc l’arbre comporte au moins un nœud.
  • L’array peut se terminer par des entrées -1 supplémentaires après le dernier nœud.
  • Les deux enfants d’un emplacement vide sont également vides, et la profondeur est au maximum de 14.
  • 0 ≤ targetSum ≤ 15000

Exemples

Entrée
tree = [3, 9, 6, -1, 2, 1, 7]targetSum = 14
Sortie
true
Explication
Le chemin 3, 9, 2 (indices 0, 1, 4) totalise 14, et le 2 à l’index 4 est une feuille.

lock icon+14 tests cachés à la soumission

challenge icon

Pour aller plus loin

Peux-tu compter les chemins dont la somme est égale à targetSum, sachant qu’un chemin peut commencer à n’importe quel nœud et se terminer à n’importe quel nœud situé en dessous, et pas seulement aller de la racine à une feuille ?

Réinitialiser le code
def hasPathSum(tree, targetSum):
    # Écrivez le code ici
Cas de test

Cas 1

Cas 2

Cas 3

Entrée

tree = [3, 9, 6, -1, 2, 1, 7]
targetSum = 14

Attendu

true