Menu
CoddyTech

Number of Provinces

ŚrednieUnion-findGrafypython iconjava iconcpp iconc iconjs icon+10

Jest n miast, ponumerowanych od 0 do n-1. isConnected[i][j] ma wartość 1, gdy droga bezpośrednio łączy miasto i z miastem j, a w przeciwnym razie 0. Drogi działają w obie strony, więc macierz jest symetryczna, a każde miasto jest połączone samo ze sobą.

Prowincja to grupa miast, z których każde może dotrzeć do pozostałych bezpośrednio lub przez inne miasta, i z której nie prowadzi żadna droga na zewnątrz. Zwróć liczbę prowincji.

Funkcja

findCircleNum(isConnected: integer-2d-array) → integer
isConnectedinteger-2d-array
macierz n × n, 1 tam, gdzie droga łączy bezpośrednio dwa miasta
Zwracainteger
liczba prowincji

Ograniczenia

  • 1 ≤ n ≤ 150, gdzie n = isConnected.length
  • isConnected[i].length = n
  • isConnected[i][j] ma wartość 0 lub 1
  • isConnected[i][i] = 1
  • isConnected[i][j] = isConnected[j][i]

Przykłady

Wejście
isConnected = [[1, 0, 0, 1], [0, 1, 1, 0], [0, 1, 1, 0], [1, 0, 0, 1]]
Wyjście
2
Wyjaśnienie
Miasto 0 ma drogę do miasta 3, a miasto 1 ma drogę do miasta 2. Żadna droga nie łączy tych dwóch par, więc są 2 prowincje.
challenge icon

Pytanie dodatkowe

Każda droga jest teraz otwierana w określonym dniu. Czy potrafisz znaleźć pierwszy dzień, w którym wszystkie miasta należą do jednej prowincji?

Zresetuj kod
def findCircleNum(isConnected):
    # Wpisz tutaj kod

Test #1

Test #2

Argument

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

Oczekiwany wynik

2