Q200 岛屿数量 Number of Islands
给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。
岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。
此外,你可以假设该网格的四条边均被水包围。
思路:深度优先搜索
因为每次需要遍历一个位置的四个方向(上下左右),那么便先写出一个遍历的函数,该函数作用于一个陆地区域(即值为1的区域),再遍历可行的陆地区域,由于dfs函数会让陆地区域在使用时将值设置为2,所以双循环最后遍历的数量就是岛屿的数量
class Solution:
def numIslands(self, grid: List[List[str]]) -> int:
def dfs(grid,row,col):
if row<0 or row>len(grid)-1 or col<0 or col>len(grid[0])-1: