Menu
CoddyTech

Number of Islands

ŚrednieGrafypython iconjava iconcpp iconc iconjs icon+10

Otrzymujesz mapę w postaci listy ciągów znaków o jednakowej długości, gdzie '1' oznacza kwadrat lądu, a '0' — kwadrat wody. Dwa kwadraty lądu należą do tej samej wyspy, jeśli stykają się bokiem: od góry, dołu, lewej lub prawej strony. Kwadraty stykające się tylko narożnikiem nie są połączone. Zwróć liczbę wysp.

Funkcja

numIslands(grid: string-array) → integer
gridstring-array
mapa, jeden ciąg znaków w każdym wierszu
Zwracainteger
liczba wysp

Ograniczenia

  • 1 ≤ grid.length ≤ 150
  • 1 ≤ grid[i].length ≤ 150
  • Każdy wiersz ma tę samą długość.
  • Każdy znak to '0' lub '1'.

Przykłady

Wejście
grid = ["11000", "11000", "00100", "00011"]
Wyjście
3
Wyjaśnienie
Cztery kwadraty w lewym górnym rogu tworzą jedną wyspę. Środkowy kwadrat w trzecim rzędzie styka się z nimi tylko rogiem, więc jest drugą wyspą. Para w prawym dolnym rogu to trzecia wyspa.
challenge icon

Pytanie dodatkowe

Ląd pojawia się teraz po jednym kwadracie na mapie wody. Czy potrafisz podać liczbę wysp po dodaniu każdego nowego kwadratu, nie przeszukując ponownie całej mapy?

Zresetuj kod
def numIslands(grid):
    # Wpisz kod tutaj

Test #1

Test #2

Argument

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

Oczekiwany wynik

3