Menu
CoddyTech

Graph Valid Tree

Du erhältst n Knoten, nummeriert von 0 bis n-1, und eine Liste edges mit ungerichteten Kanten. Jedes Paar [a, b] verbindet Knoten a und Knoten b.

Gib true zurück, wenn die Kanten alle n Knoten zu einem einzigen Baum verbinden: Jeder Knoten kann jeden anderen erreichen, und es gibt keinen Zyklus. Gib andernfalls false zurück.

Funktion

validTree(n: integer, edges: integer-2d-array) → boolean
ninteger
die Anzahl der Knoten, nummeriert von 0 bis n-1
edgesinteger-2d-array
die ungerichteten Kanten, jeweils ein Paar [a, b]
Gibt zurückboolean
true, wenn die Kanten alle n Knoten zu einem Baum verbinden, andernfalls false

Einschränkungen

  • 2 ≤ n ≤ 104
  • 1 ≤ edges.length ≤ 5000
  • edges[i] = [a, b] mit 0 ≤ a, b ≤ n-1 und a ≠ b
  • Keine Kante erscheint zweimal, auch nicht in umgekehrter Richtung.

Beispiele

Eingabe
n = 5edges = [[0, 1], [0, 2], [0, 3], [1, 4]]
Ausgabe
true
Erklärung
Knoten 0 ist mit den Knoten 1, 2 und 3 verbunden, und Knoten 4 hängt an Knoten 1. Vier Kanten verbinden alle fünf Knoten ohne Schleife, also ist dies ein Baum.
challenge icon

Weiterführende Frage

Wenn der Graph kein Baum ist, wie viele Kanten musst du entfernen und wie viele hinzufügen, damit er zu einem Baum wird? Kannst du beides in einem Durchlauf zählen?

Code zurücksetzen
def validTree(n, edges):
    # Schreibe hier den Code

Test #1

Test #2

Test #3

Argumente

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

Erwartete Ausgabe

true