GRID//RUNNER

NUMBER OF ISLANDS MEDIUM

problema

Você recebe um mapa em forma de grade R × C, onde '1' é terra e '0' é água. Uma ilha é um grupo de terras ligadas na horizontal ou na vertical (diagonal não conta). Tudo fora da grade é água. Retorne quantas ilhas existem.

Visto como grafo: cada terra é um nó, e terras vizinhas são ligadas por uma aresta. Contar ilhas é contar componentes conexos, e para isso basta uma busca (DFS ou BFS) a partir de cada terra ainda não visitada.

Exemplo 1 · ["11001", "10011", "00100"] → 3

O canto de cima à esquerda (3 terras), o grupo da direita (3 terras) e a terra sozinha no meio.

Exemplo 2 · ["111", "010", "111"] → 1

A coluna do meio liga as duas linhas: é uma ilha só.

Restrições: 1 ≤ R, C ≤ 300 · cada célula é '0' ou '1'