Menu
CoddyTech

Number of Provinces

Есть n городов, пронумерованных от 0 до n-1. Вам дана матрица n × n isConnected в виде списка строк: isConnected[i][j] равно 1, если дорога напрямую соединяет город i и город j, и 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 провинции.

lock icon+15 скрытых тестов при отправке

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