547.省份数量

深度优先遍历

找到未访问过的城市,深度优先遍历其所有能联通的城市,并标记为已访问。

最后统计有几个联通量。

时间复杂度:O(N^2)
空间复杂度:O(N)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
func findCircleNum(isConnected [][]int) int {
ans := 0
visited := make([]bool, len(isConnected))
var dfs func(int)

dfs = func(i int) {
if visited[i] {
return
}
visited[i] = true
for j, connected := range isConnected[i] {
if connected == 1 {
dfs(j)
}
}
}

for i := 0; i < len(isConnected); i++ {
if !visited[i] {
dfs(i)
ans++
}
}

return ans
}

547.省份数量
https://blog.jerrylee.me/2021/09/d4aa73c2e1fd.html
作者
Jerry Lee
发布于
2021年9月20日
许可协议