Menu
CoddyTech

Number of Provinces

都市が n 個あり、0 から n-1 まで番号が付いています。isConnected[i][j] は、都市 i と都市 j を道路が直接結んでいる場合は 1、そうでない場合は 0 です。道路は双方向に通行できるため、行列は対称であり、すべての都市は自分自身ともつながっています。

州とは、他の都市を経由する場合も含めて、互いに行き来でき、グループの外へ出る道路がない都市のグループです。州の数を返してください。

関数

findCircleNum(isConnected: integer-2d-array) → integer
isConnectedinteger-2d-array
n × n 行列で、道路が2つの都市を直接結んでいる箇所は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 組の間を結ぶ道路はないため、州は 2 つあります。
challenge icon

発展問題

各道路は指定された日に開通します。すべての都市が1つの州に属する最初の日を見つけられますか?

コードをリセット
def findCircleNum(isConnected):
    # ここにコードを書いてください

テスト #1

テスト #2

引数

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

期待される出力

2