Menu
CoddyTech

Path Sum

Otrzymujesz drzewo binarne zapisane w tablicy tree w kolejności poziomami oraz liczbę targetSum. Korzeń znajduje się pod indeksem 0, dzieci węzła pod indeksem i znajdują się pod indeksami 2*i+1 (lewe) i 2*i+2 (prawe), -1 oznacza puste miejsce, a tablica może kończyć się dodatkowymi wpisami -1. Zwróć true, jeśli istnieje ścieżka od korzenia w dół do liścia, której wartości sumują się do targetSum, a w przeciwnym razie false. Liść to węzeł bez dzieci: oba jego miejsca na dzieci są puste.

Funkcja

hasPathSum(tree: integer-array, targetSum: integer) → boolean
treeinteger-array
drzewo binarne w porządku poziomami, z wartością -1 oznaczającą puste miejsce
targetSuminteger
łączna wartość, jaką musi osiągnąć ścieżka od korzenia do liścia
Zwracaboolean
true, jeśli suma wartości na którejś ścieżce od korzenia do liścia wynosi targetSum; w przeciwnym razie false

Ograniczenia

  • 1 ≤ tree.length ≤ 32767
  • Każde tree[i] ma wartość -1 lub wartość, dla której 0 ≤ tree[i] ≤ 1000.
  • tree[0] nigdy nie jest równe -1, więc drzewo ma co najmniej jeden węzeł.
  • Tablica może kończyć się dodatkowymi wpisami -1 za ostatnim węzłem.
  • Oba potomki pustego pola również są puste, a głębokość wynosi najwyżej 14.
  • 0 ≤ targetSum ≤ 15000

Przykłady

Wejście
tree = [3, 9, 6, -1, 2, 1, 7]targetSum = 14
Wyjście
true
Wyjaśnienie
Ścieżka 3, 9, 2 (indeksy 0, 1, 4) daje w sumie 14, a 2 na indeksie 4 jest liściem.

lock icon+14 ukrytych testów przy wysłaniu

challenge icon

Pytanie dodatkowe

Czy potrafisz policzyć ścieżki, których suma wynosi targetSum, jeśli ścieżka może zaczynać się w dowolnym węźle i kończyć w dowolnym węźle poniżej niego, a nie tylko biec od korzenia do liścia?

Zresetuj kod
def hasPathSum(tree, targetSum):
    # Wpisz kod tutaj
Przypadki testowe

Przypadek 1

Przypadek 2

Przypadek 3

Wejście

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

Oczekiwane

true