Menu
CoddyTech

Number of Provinces

Il y a n villes, numérotées de 0 à n-1. On vous donne une matrice n × n isConnected sous forme d’une liste de lignes : isConnected[i][j] vaut 1 lorsqu’une route relie directement la ville i à la ville j, et 0 dans le cas contraire. Les routes sont à double sens, donc la matrice est symétrique, et chaque ville est considérée comme reliée à elle-même.

Une province est un groupe de villes qui peuvent toutes se rejoindre, directement ou en passant par d’autres villes, sans qu’aucune route ne mène en dehors du groupe. Renvoyez le nombre de provinces.

Fonction

findCircleNum(isConnected: integer-2d-array) → integer
isConnectedinteger-2d-array
la matrice n × n, 1 lorsqu’une route relie directement deux villes
Renvoieinteger
le nombre de provinces

Contraintes

  • 1 ≤ n ≤ 150, où n = isConnected.length
  • isConnected[i].length = n
  • isConnected[i][j] vaut 0 ou 1
  • isConnected[i][i] = 1
  • isConnected[i][j] = isConnected[j][i]

Exemples

Entrée
isConnected = [[1, 0, 0, 1], [0, 1, 1, 0], [0, 1, 1, 0], [1, 0, 0, 1]]
Sortie
2
Explication
La ville 0 a une route vers la ville 3, et la ville 1 a une route vers la ville 2. Aucune route ne relie les deux paires, donc il y a 2 provinces.

lock icon+15 tests cachés à la soumission

challenge icon

Pour aller plus loin

Chaque route s’ouvre désormais un jour donné. Peux-tu trouver le premier jour où toutes les villes appartiennent à une seule province ?

Réinitialiser le code
def findCircleNum(isConnected):
    # Écrivez le code ici
Cas de test

Cas 1

Cas 2

Entrée

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

Attendu

2