Menu
CoddyTech

Find if Path Exists in Graph

Ein ungerichteter Graph hat n Knoten, nummeriert von 0 bis n-1. Jeder Eintrag [u, v] in edges verbindet die Knoten u und v, und du kannst eine Kante in beide Richtungen durchlaufen. Gib true zurück, wenn du entlang der Kanten von source nach destination gelangen kannst, andernfalls false. Ein Knoten kann sich immer selbst erreichen.

Funktion

validPath(n: integer, edges: integer-2d-array, source: integer, destination: integer) → boolean
ninteger
die Anzahl der Knoten
edgesinteger-2d-array
die Kanten, jeweils ein Paar [u, v] verbundener Knoten
sourceinteger
der Knoten, von dem aus du startest
destinationinteger
den Knoten, den du erreichen möchtest
Gibt zurückboolean
ob ein Pfad Quelle und Ziel verbindet

Einschränkungen

  • 2 ≤ n ≤ 104
  • 1 ≤ edges.length ≤ 5000
  • edges[i] = [u, v] wobei 0 ≤ u, v ≤ n-1 und u ≠ v
  • Keine Kante kommt zweimal vor, auch nicht in umgekehrter Richtung.
  • 0 ≤ source, destination ≤ n-1

Beispiele

Eingabe
n = 6edges = [[0, 1], [1, 2], [2, 3], [4, 5]]source = 0destination = 3
Ausgabe
true
Erklärung
Der Pfad 0 → 1 → 2 → 3 verwendet drei Kanten, also ist Knoten 3 erreichbar. Die Knoten 4 und 5 bilden einen separaten Bereich, den der Pfad nie benötigt.

lock icon+16 versteckte Tests beim Einreichen

challenge icon

Weiterführende Frage

Angenommen, die Kanten sind Einbahnstraßen: [u, v] lässt dich nur von u nach v gehen. Welche der drei Ansätze funktionieren weiterhin, und was musst du daran ändern?

Code zurücksetzen
def validPath(n, edges, source, destination):
    # Schreibe hier den Code
Testfälle

Fall 1

Fall 2

Eingabe

n = 6
edges = [[0, 1], [1, 2], [2, 3], [4, 5]]
source = 0
destination = 3

Erwartet

true