Menu
CoddyTech

Number of Provinces

中等并查集图python iconjava iconcpp iconc iconjs icon+10

有 n 个城市,编号从 0 到 n-1。当一条道路直接连接城市 i 和城市 j 时,isConnected[i][j] 的值为 1,否则为 0。道路是双向的,因此这个矩阵是对称的,并且每个城市都与自身相连。

省份是由一组城市组成的,这些城市可以直接或通过其他城市彼此到达,并且没有道路通向这组城市之外。返回省份的数量。

函数

findCircleNum(isConnected: integer-2d-array) → integer
isConnectedinteger-2d-array
n × n 矩阵,如果一条道路直接连接两座城市,则填入 1
返回值integer
省份数量

约束条件

  • 1 ≤ n ≤ 150,其中 n = isConnected.length
  • isConnected[i].length = n
  • isConnected[i][j] 是 0 或 1
  • isConnected[i][i] = 1
  • isConnected[i][j] = isConnected[j][i]

示例

输入
isConnected = [[1, 0, 0, 1], [0, 1, 1, 0], [0, 1, 1, 0], [1, 0, 0, 1]]
输出
2
解释
城市 0 有一条通往城市 3 的道路,城市 1 有一条通往城市 2 的道路。这两组城市之间没有道路相连,所以共有 2 个省份。
challenge icon

进阶

现在,每条道路都会在指定的一天开放。你能找出所有城市都属于同一个省份的第一天吗?

重置代码
def findCircleNum(isConnected):
    # 在这里编写代码

测试 #1

测试 #2

参数

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

预期输出

2