Menu
CoddyTech

Number of Islands

СреднеГрафыpython iconjava iconcpp iconc iconjs icon+10

Тебе дана карта в виде списка строк одинаковой длины, где '1' — квадрат суши, а '0' — квадрат воды. Два квадрата суши принадлежат одному острову, если они соприкасаются сторонами: сверху, снизу, слева или справа. Квадраты, соприкасающиеся только углами, не соединены. Верни количество островов.

Функция

numIslands(grid: string-array) → integer
gridstring-array
карту, по одной строке на ряд
Возвращаетinteger
количество островов

Ограничения

  • 1 ≤ grid.length ≤ 150
  • 1 ≤ grid[i].length ≤ 150
  • Все строки имеют одинаковую длину.
  • Каждый символ — это '0' или '1'.

Примеры

Ввод
grid = ["11000", "11000", "00100", "00011"]
Вывод
3
Пояснение
Четыре квадрата в левом верхнем углу образуют один остров. Средний квадрат в третьем ряду касается их только углом, поэтому это второй остров. Пара квадратов внизу справа — третий остров.
challenge icon

Дополнительный вопрос

Теперь суша появляется на карте воды по одной клетке за раз. Можешь сообщать количество островов после появления каждой новой клетки, не просматривая всю карту заново?

Сбросить код
def numIslands(grid):
    # Напишите код здесь

Тест #1

Тест #2

Аргумент

grid = ["11000", "11000", "00100", "00011"]

Ожидаемый вывод

3