题解 | #岛屿的最大面积#

岛屿的最大面积

http://www.nowcoder.com/practice/5568943d3a08403f932a5e54ec3ece71

dfs,遍历矩阵找到值为 1 并进行搜索;

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param grid int整型二维数组 
# @return int整型
#
class Solution:
    def maxAreaIsland(self , grid: List[List[int]]) -> int:
        # write code here
        if not grid:
            return 0
        m, n = len(grid), len(grid[0])
        dirs = [(-1, 0), (0, 1), (1, 0), (0, -1)]
        def dfs(x, y, grid):
            grid[x][y] = 0
            res = 1
            for i, j in dirs:
                xi, yi = x + i, y + j
                if 0 <= xi < m and 0 <= yi < n and grid[xi][yi] == 1:
                    res += dfs(xi, yi, grid)
            return res
        res = 0
        for i in range(m):
            for j in range(n):
                if grid[i][j] == 1:
                    res = max(res, dfs(i, j, grid))
        return res
全部评论

相关推荐

苗条的伊泽瑞尔最喜欢...:同28届被压力了,电科✌就不能去卷算法吗?把Java留给我们双非卷
投递快手等公司10个岗位
点赞 评论 收藏
分享
12-19 20:28
已编辑
门头沟学院 Java
美团履约 全栈工程师 (n+1)*15.5 其他
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务