图论——求岛屿的最大面积(python)

张开发
2026/4/20 4:58:42 15 分钟阅读

分享文章

图论——求岛屿的最大面积(python)
思路dfs搜索岛屿的时候用一个全局变量记录搜索到的岛屿的面积保留最大值。#搜索岛屿的最大面积 # 4 5 # 1 1 0 0 0 # 1 1 0 0 0 # 0 0 1 0 0 # 0 0 0 1 1 #输出 4 def maxIslandArea(grid,m,n): res0 visited[[0]*n for _ in range(m)] dirs[(0,1),(0,-1),(1,0),(-1,0)] #四个方向 def dfs(x,y): nonlocal cur,res if x0 or xm or y0 or yn: #判断是否越界 return if grid[x][y]0 or visited[x][y]1: return cur1 visited[x][y]1 for dx,dy in dirs: dfs(xdx,ydy) for i in range(m): for j in range(n): cur 0 if grid[i][j]1 and visited[i][j]0: dfs(i,j) #直接递归判断逻辑交给递归函数内部 resmax(cur,res) #更新全局变量 print(res) return res def main(): m,nmap(int,input().split()) grid[] for i in range(m): linelist(map(int,input().split())) grid.append(line) maxIslandArea(grid,m,n) if __name____main__: main()

更多文章