题目描述:

输入的grid是一个数组,其中0代表海洋,1代表岛屿,题目要求寻找最大岛屿面积,即寻找grid中连续1的最大值。

题解:

采用深度优先搜索dfs的方法:

1.对位置[i,j],如果i j超出边界,则结束搜索返回0,如果grid[i][j]存在,但为0,也结束搜索,返回0.

2.如果[i,j]位置合法,并且grid[i][j]=1,则说明该位置代表一个岛屿或者处在一个更大岛屿之中,记录该岛屿面积count=1,然后需要对[i,j]周围的四个方向进行搜索,最终岛屿的面积为当前count加上[i,j]周围四个位置调用dfs的结果。需要注意,处理完一个位置后需要将grid[i][j]标记为0,否则将陷入死循环。

3.对grid中所有值为1的位置调用dfs,返回最大值。

class Solution(object):def maxAreaOfIsland(self, grid):def dfs(i,j):if i<0 or i>=len(grid) or j<0 or j>=len(grid[0]) or grid[i][j]==0:return 0count = 1grid[i][j] = 0count = count+dfs(i-1,j)count = count + dfs(i+1,j)count = count + dfs(i,j-1)count = count + dfs(i, j+1)return countmaxarea = 0for i in range(len(grid)):for j in range(len(grid[0])):maxarea = max(maxarea,dfs(i,j))return maxarea

leetcode 695. 岛屿的最大面积 python相关推荐

  1. LeetCode 695.岛屿的最大面积

    LeetCode 695.岛屿的最大面积 给你一个大小为 m x n 的二进制矩阵 grid . 岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在 水平或者竖直的 ...

  2. LeetCode 695. 岛屿的最大面积【c++/java详细题解】

    目录 1.题目 2.思路 3.c++代码 4.java代码 1.题目 给定一个包含了一些 0 和 1 的非空二维数组 grid . 一个 岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相 ...

  3. LeetCode 695. 岛屿的最大面积(图的BFS/DFS)

    文章目录 1. 题目 2. 解题 2.1 BFS广度优先搜索 2.2 DFS深度优先搜索 1. 题目 给定一个包含了一些 0 和 1的非空二维数组 grid , 一个 岛屿 是由四个方向 (水平或垂直 ...

  4. LeetCode 695. 岛屿的最大面积

    文章目录 题目 题解 代码 题目 给定一个包含了一些 0 和 1 的非空二维数组 grid . 一个 岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在水平或者竖直 ...

  5. LeetCode 695 岛屿的最大面积

    题目描述 给定一个包含了一些 0 和 1 的非空二维数组 grid .一个 岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在水平 或者竖直方向上相邻.你可以假设 ...

  6. 每日一道leetcode(python)695. 岛屿的最大面积

    每日一道leetcode(python)695. 岛屿的最大面积 2021-08-21 给定一个包含了一些 0 和 1 的非空二维数组 grid .一个 岛屿 是由一些相邻的 1 (代表土地) 构成的 ...

  7. 力扣(Leetcode)695. 岛屿的最大面积(Java)带注释

    leetcode刷题695. 岛屿的最大面积 1.题目描述 2.解法 1.DFS(深度优先搜索) 2.DFS + 栈 1.题目描述 给你一个大小为 m x n 的二进制矩阵 grid . 岛屿 是由一 ...

  8. 岛屿问题 通用解-463.岛屿周长-200.岛屿数量-695.岛屿的最大面积-827.最大人工岛

    文章目录 岛屿问题 如何在网格上做DFS(通用解) 463.岛屿的周长 题目 题解 -通用模板 题解2 200.岛屿数量 题目 题解 695.岛屿的最大面积 题目 题解 827.最大人工岛 题目 题解 ...

  9. 岛屿类-网格类问题-DFS | 力扣695. 岛屿的最大面积

    思路参考上文: 岛屿类-网格类问题-DFS | 力扣200. 岛屿数量 本文讲解695. 岛屿的最大面积问题,属于常见的岛屿类-网格类问题 本题使用DFS的思想 题目 给定一个包含了一些 0 和 1 ...

最新文章

  1. python argv 详解_Python3 sys.argv[ ]用法详解
  2. 《程序员修炼之道》笔记(一)
  3. JAVA学习笔记——JAVA基础语法之精华
  4. pthread_key_create
  5. vuejs npm chromedriver 报错
  6. 【乘风破浪的开发者】华为云云享专家胡琦:快快使用ModelArts,零基础也能玩转AI!
  7. 【编程珠玑】第九章 代码调优
  8. mysql57介绍_MySQL5.7 JSON类型使用介绍
  9. HTTP协议状态码大全
  10. MySql服务无法连接
  11. linux虚拟机简单部署以及安装可视化界面
  12. 时间序列分析之协整检验
  13. 2015—2016年QS世界大学排名200强-[转]
  14. 【已解决】ubuntu无法进入启动页面,全屏出现【ok】并且不停闪烁
  15. Java内存泄漏分析系列之七:使用MAT的Histogram和Dominator Tree定位溢出源
  16. 研究日记:虚拟歌姬自动调教之歌曲音频切割的问题
  17. 悉尼大学理学院计算机科学,悉尼大学理学院本科申请
  18. SaltStack实战之远程执行-Returners
  19. 编程浅谈-以一个初出茅庐的Java程序员视角
  20. 【构成L2笔记:双主角 概括浅谈】

热门文章

  1. 计算机教师格言座右铭,教师励志格言座右铭100句
  2. 打开网页报错:net::ERR_CONTENT_LENGTH_MISMATCH,网页打开时显示不全,需要刷新几次才行
  3. 紧随大厂脚步入局海外3A,米哈游造出下一个“原神”难?
  4. Redis存key出现\xAC\xED\x00\x05t\x00\x14
  5. 链栈的创建,入栈,出栈!
  6. [OC学习笔记]块与大中枢开发
  7. 65. Python中强大灵活的eval函数
  8. 抢红包技术大揭秘:如何使用Redis轻松实现抢红包
  9. ubuntu下使用mosquitto与分析
  10. 【深度学习】(ICCV-2021)PVT-金字塔 Vision Transformer及PVT_V2