题目描述
给一个01矩阵,1代表是陆地,0代表海洋, 如果两个1相邻,那么这两个1属于同一个岛。我们只考虑上下左右为相邻。
岛屿: 相邻陆地可以组成一个岛屿(相邻:上下左右) 判断岛屿个数。
# 判断岛屿数量
# @param grid char字符型二维数组
# @return int整型
class Solution:
def solve(self , grid ):
if not grid:
return 0
count = 0
for i in range(0,len(grid)):
for j in range(0,len(grid[0])):
if grid[i][j] == "1":
count += 1
self.reach_grid(grid,i,j)
return count
def reach_grid(self,grid,i,j):
if i < 0 or i >= len(grid) or j < 0 or j >= len(grid[0]) or grid[i][j] == "0":
return
grid[i][j] = "0"
self.reach_grid(grid,i-1,j)
self.reach_grid(grid,i+1,j)
self.reach_grid(grid,i,j-1)
self.reach_grid(grid,i,j+1)