Острова

легко

Дана карта в виде двумерного массива grid, где 1 обозначает сушу, а 0 обозначает воду. Нужно определить, сколько отдельных островов есть на карте.

Островом считается группа соединённых по вертикали или горизонтали клеток с сушей (1), при этом ни одна из клеток острова не должна соприкасаться с краем карты — то есть такие острова полностью окружены водой и не касаются границ массива.

Замечание: при необходимости, можно изменять исходный массив.

Пример 1:

Ввод: grid =
[[1,0,0]
,[1,1,0]
,[1,1,1]
,[1,0,0]]
Вывод: 0
Объяснение: на карте есть один участок суши, но мы не считаем его островом, потому что он прилегает к краевым элементам карты.

Пример 2:

Ввод: grid =
[[0,0,0]
,[0,1,0]
,[0,1,0]
,[0,0,0]]
Вывод: 1

Пример 3:

Ввод: grid =
[[0,0,0,1]
,[0,1,0,0]
,[0,1,0,0]
,[0,0,1,0]
,[0,0,0,0]]
Вывод: 2

Ограничения:

  • len(grid) >= 1
  • len(grid[i]) >= 1