Menu
CoddyTech

Number of Provinces

Es gibt n Städte, nummeriert von 0 bis n-1. Du erhältst eine n × n-Matrix isConnected als Liste von Zeilen: isConnected[i][j] ist 1, wenn eine Straße Stadt i und Stadt j direkt verbindet, und 0, wenn dies nicht der Fall ist. Straßen funktionieren in beide Richtungen, daher ist die Matrix symmetrisch, und jede Stadt gilt als mit sich selbst verbunden.

Eine Provinz ist eine Gruppe von Städten, die sich alle direkt oder über andere Städte erreichen können, wobei keine Straße aus der Gruppe herausführt. Gib die Anzahl der Provinzen zurück.

Funktion

findCircleNum(isConnected: integer-2d-array) → integer
isConnectedinteger-2d-array
die n × n-Matrix, 1, wenn eine Straße zwei Städte direkt verbindet
Gibt zurückinteger
die Anzahl der Provinzen

Einschränkungen

  • 1 ≤ n ≤ 150, wobei n = isConnected.length
  • isConnected[i].length = n
  • isConnected[i][j] ist 0 oder 1
  • isConnected[i][i] = 1
  • isConnected[i][j] = isConnected[j][i]

Beispiele

Eingabe
isConnected = [[1, 0, 0, 1], [0, 1, 1, 0], [0, 1, 1, 0], [1, 0, 0, 1]]
Ausgabe
2
Erklärung
Stadt 0 hat eine Straße zu Stadt 3, und Stadt 1 hat eine Straße zu Stadt 2. Keine Straße verbindet die beiden Paare, daher gibt es 2 Provinzen.

lock icon+15 versteckte Tests beim Einreichen

challenge icon

Weiterführende Frage

Jede Straße wird nun an einem bestimmten Tag geöffnet. Kannst du den ersten Tag finden, an dem alle Städte zu einer einzigen Provinz gehören?

Code zurücksetzen
def findCircleNum(isConnected):
    # Schreibe hier den Code
Testfälle

Fall 1

Fall 2

Eingabe

isConnected = [[1, 0, 0, 1], [0, 1, 1, 0], [0, 1, 1, 0], [1, 0, 0, 1]]

Erwartet

2