Menu
CoddyTech

Number of Provinces

n 個の都市があり、0 から n-1 まで番号が付けられています。行のリストとして n × n の行列 isConnected が与えられます。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 つあります。

lock icon提出時に隠しテスト+15件

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