LeetCode0200.岛屿数量【Medium】【Python】【DFS】问题LeetCode给定一个'1's(陆地)和'0's(水)的二维网格地图,计算岛屿的数量。岛屿四面环水,由相邻陆地水平或垂直连接而成。您可以假设网格的所有四个边缘都被水包围。示例1:输入:11110110101100000000输出:111000110000010000011输出:3问题Litex给定“1”(陆地)和“0”(水)的二维网格,计算岛屿的数量。一个岛屿被水包围,并与相邻的陆地水平或垂直相连。您可以假设网格的所有四个侧面都被水包围。示例1:输入:11110110101100000000输出:1示例2:输入:11000110000010000011输出:3思路DFS对每个“1”进行DFS,将其周围所有相邻的“1”变为“0”。计算总的DFS次数,也就是孤岛数。时间复杂度:O(m*n),其中m是行数,n是列数。空间复杂度:O(m*n)在最坏的情况下,当所有的都是陆地时。Python3代码类解决方案:defnumIslands(self,grid:List[List[str]])->int:ans=0#m,n=len(grid),len(grid[0])#RuntimeErrorforiinrange(len(grid)):forjinrange(len(grid[0])):如果grid[i][j]=="1":self.dfs(grid,i,j)ans+=1returnans#dfs模板defdfs(self,grid,i,j):m,n=len(grid),len(grid[0])directions=[(0,1),(0,-1),(-1,0),(1,0)]grid[i][j]="0"fordirectionsindirections:x,y=i+direction[0],j+direction[1]if0<=x
