[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

作者:Esofar

出处:https://www.cnblogs.com/DCFV/p/18571877

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   Duancf  阅读(13)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
more_horiz
keyboard_arrow_up dark_mode palette
选择主题
点击右上角即可分享
微信分享提示