[Python手撕]岛屿的最大面积
LCR 105. 岛屿的最大面积
给定一个由 0 和 1 组成的非空二维数组 grid ,用来表示海洋岛屿地图。
一个 岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在水平或者竖直方向上相邻。你可以假设 grid 的四个边缘都被 0(代表水)包围着。
找到给定的二维数组中最大的岛屿面积。如果没有岛屿,则返回面积为 0 。
class Solution:
def maxAreaOfIsland(self, grid: List[List[int]]) -> int:
def dfs(x,y):
if 0<=x<n and 0<=y<m and grid[x][y] == 1:
grid[x][y] = 0
return 1+dfs(x+1,y)+dfs(x, y+1)+dfs(x-1,y)+dfs(x,y-1)
else:
return 0
n = len(grid)
m = len(grid[0])
maxArea = 0
for i in range(n):
for j in range(m):
if grid[i][j] == 1:
maxArea = max(maxArea,dfs(i,j))
return maxArea
合集:
手撕算法
Buy me a cup of coffee ☕.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?