Menu
CoddyTech

Number of Provinces

Есть n городов, пронумерованных от 0 до n-1. 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 провинции.
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