class Solution:
def numIslands(self, grid: List[List[str]]) -> int:
res = 0
visit = []
for i in range(len(grid)):
tmp = [False for i in range(len(grid[0]))]
visit.append(tmp)
for i in range(len(grid)):
for j in range(len(grid[0])):
if grid[i][j] == '0' or visit[i][j] == True:
continue
self.helper(grid, i, j, visit)
res += 1
# print(visit)
return res
def helper(self, grid, i, j, visit):
if i<0 or i>=len(grid) or j<0 or j>=len(grid[0]) or grid[i][j] == '0' or visit[i][j] == True:
return
visit[i][j] = True
self.helper(grid, i+1, j, visit)
self.helper(grid, i-1, j, visit)
self.helper(grid, i, j+1, visit)
self.helper(grid, i, j-1, visit)