AlgoMaster Logo

Number of Provinces

isConnected=[[1,1,0],[1,1,0],[0,0,1]]
1public int findCircleNum(int[][] isConnected) {
2    int n = isConnected.length;
3    boolean[] visited = new boolean[n];
4    int provinces = 0;
5
6    for (int i = 0; i < n; i++) {
7        if (!visited[i]) {
8            provinces++;
9            dfs(isConnected, visited, i, n);
10        }
11    }
12
13    return provinces;
14}
15
16private void dfs(int[][] isConnected, boolean[] visited, int city, int n) {
17    visited[city] = true;
18    for (int neighbor = 0; neighbor < n; neighbor++) {
19        if (isConnected[city][neighbor] == 1 && !visited[neighbor]) {
20            dfs(isConnected, visited, neighbor, n);
21        }
22    }
23}
0 / 25
110110001012012visitedFFF012visitedcurrent