Menu
CoddyTech

Number of Provinces

Il y a n villes, numérotées de 0 à n-1. isConnected[i][j] vaut 1 lorsqu’une route relie directement la ville i et la ville j, et 0 dans le cas contraire. Les routes sont à double sens, donc la matrice est symétrique, et chaque ville est 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 à l’extérieur du groupe. Retourne 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, il y a donc 2 provinces.
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 même province ?

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

Test #1

Test #2

Argument

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

Résultat attendu

2