There are n cities. Some of them are connected, while some are not. If city a is connected directly with city b, and city b is connected directly with city c, then city a is connected indirectly with city c.A province is a group of directly or indirectly connected cities and no other cities outside of the group.You are given an n x n matrix isConnected where isConnected[i][j] = 1 if the ith city and the jth city are directly connected, and isConnected[i][j] = 0 otherwise.Return the total number of provinces.
class Solution: # Time: O(n^2) # Space: O(n) def find_circle_num(self, is_connected: list[list[int]]) -> int: n = len(is_connected) visited = [False] * n def dfs(city: int) -> None: visited[city] = True for neighbor in range(n): if is_connected[city][neighbor] == 1 and not visited[neighbor]: dfs(neighbor) provinces = 0 for city in range(n): if not visited[city]: dfs(city) provinces += 1 return provinces