25 lines
422 B
Go
25 lines
422 B
Go
package q547
|
|
|
|
func walk(graph [][]int, i int, seen []bool) {
|
|
for j := range graph {
|
|
if graph[i][j] == 1 && !seen[j] {
|
|
seen[j] = true
|
|
walk(graph, j, seen)
|
|
}
|
|
}
|
|
}
|
|
|
|
func findCircleNum(isConnected [][]int) int {
|
|
seen := make([]bool, len(isConnected))
|
|
|
|
provinces := 0
|
|
for i := range len(isConnected) {
|
|
if !seen[i] {
|
|
walk(isConnected, i, seen)
|
|
provinces++
|
|
}
|
|
}
|
|
return provinces
|
|
}
|
|
|
|
var _ = findCircleNum
|