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

2021-08-21

给定一个包含了一些 0 和 1 的非空二维数组 grid 。一个 岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在水平或者竖直方向上相邻。你可以假设 grid 的四个边缘都被 0(代表水)包围着。找到给定的二维数组中最大的岛屿面积。(如果没有岛屿,则返回面积为 0 。)示例 1:[[0,0,1,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,1,1,1,0,0,0],[0,1,1,0,1,0,0,0,0,0,0,0,0],[0,1,0,0,1,1,0,0,1,0,1,0,0],[0,1,0,0,1,1,0,0,1,1,1,0,0],[0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,1,1,1,0,0,0],[0,0,0,0,0,0,0,1,1,0,0,0,0]]
对于上面这个给定矩阵应返回 6。注意答案不应该是 11 ,因为岛屿只能包含水平或垂直的四个方向的 1 。示例 2:[[0,0,0,0,0,0,0,0]]
对于上面这个给定的矩阵, 返回 0。
注意: 给定的矩阵grid 的长度和宽度都不超过 50。来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/max-area-of-island
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

使用深度优先搜索方法解决方格问题。

每当遇到1,将该位置填充-1,并遍历与之相邻的所有1,使用统计1出现的次数。

class Solution:def maxAreaOfIsland(self, grid: List[List[int]]) -> int:rows, columns = len(grid), len(grid[0])def dfs(r, c):if 0 <= r < rows and 0 <= c < columns and grid[r][c] == 1:grid[r][c] = -1return 1 + dfs(r + 1, c) + dfs(r - 1, c) + dfs(r, c + 1) + dfs(r, c - 1)return 0return max(dfs(r, c) for r in range(rows) for c in range(columns))

每日一道leetcode(python)695. 岛屿的最大面积相关推荐

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

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

  2. 每日一道leetcode(python)1823. 找出游戏的获胜者

    每日一道leetcode(python)1823. 找出游戏的获胜者 2021-08-07 共有 n 名小伙伴一起做游戏.小伙伴们围成一圈,按 顺时针顺序 从 1 到 n 编号.确切地说,从第 i 名 ...

  3. 每日一道leetcode(python)844. 比较含退格的字符串

    每日一道leetcode(python)844. 比较含退格的字符串 2021-09-05 给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果. # 代表 ...

  4. 每日一道leetcode(python)876. 链表的中间结点

    每日一道leetcode(python)876. 链表的中间结点 2021-08-19 给定一个头结点为 head 的非空单链表,返回链表的中间结点.如果有两个中间结点,则返回第二个中间结点.示例 1 ...

  5. 每日一道leetcode(python)77. 组合

    每日一道leetcode(python)77. 组合 2021-08-25 给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合.你可以按 任何顺序 返回答案.示例 1:输入 ...

  6. 每日一道leetcode(python)46. 全排列

    每日一道leetcode(python)46. 全排列 2021-08-25 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 .你可以 按任意顺序 返回答案.示例 1:输入:nums ...

  7. 每日一道leetcode(python)48. 旋转图像

    每日一道leetcode(python)48. 旋转图像 2021-07-27 给定一个 n × n 的二维矩阵 matrix 表示一个图像.请你将图像顺时针旋转 90 度. 你必须在 原地 旋转图像 ...

  8. leetcode最小面积_每日一道 LeetCode (51):盛最多水的容器

    ❝ 每天 3 分钟,走上算法的逆袭之路. ❞ 前文合集 每日一道 LeetCode 前文合集 代码仓库 GitHub:https://github.com/meteor1993/LeetCode Gi ...

  9. atoi函数_每日一道 LeetCode (50):字符串转换整数 (atoi)

    ❝ 每天 3 分钟,走上算法的逆袭之路. ❞ 前文合集 每日一道 LeetCode 前文合集 代码仓库 GitHub:https://github.com/meteor1993/LeetCode Gi ...

最新文章

  1. Linux下,各种解压缩命令集合
  2. print、println的区别
  3. 1.4 Java创建一个学生类
  4. python opencv cv2.namedWindow(winname, flags=None) (命名)创建窗口 cv::WindowFlags
  5. SpringCloud个人笔记-02-Feign初体验
  6. 世界上最震撼的地质景观,你认识多少?
  7. python中set集合_Python中的SET集合操作
  8. vue---数据列表循环
  9. java 中 byte[]、File、InputStream 互相转换
  10. java海康摄像头添加人脸_java调用海康人脸识别机5603的sdk的使用总结(二)
  11. 12,jesd204b实战操作笔记
  12. 在硅谷,中国工程师为什么干不过印度人?
  13. 阿里云文本反垃圾检测接口调用
  14. 不一样的“中国速度”,数据可视化交通运输大屏,带你见证中国高铁
  15. 程序猿是怎么找对象的
  16. jmeter 进行弱网测试
  17. 博林格林大学计算机排名,美国传媒研究生排名简述
  18. google 的高级搜索
  19. jarvis oj Web By Assassin
  20. 在android上启动分屏的方法

热门文章

  1. python的函数式编程实例_函数式编程例子
  2. c语言中把文件看成什么流,C语言中的文件流
  3. PS5连接OPPO K9电视不支持2160P/4K
  4. red hart linux中文,hart是什么意思_hart的翻译_音标_读音_用法_例句_爱词霸在线词典...
  5. 大数据周会-本周学习内容总结08
  6. kafka 命令、API
  7. Codeforces Round #295 (Div. 2) ABC
  8. 麻省理工学院计算机好考吗,麻省理工大学世界排名是多少(麻省理工有多难考)...
  9. 一个人最顶级的才华,是会填坑
  10. abaqus inp扫盲与提高 *MATRIX GENERATE,STIFFNESS的验证