给你一个由 '1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量。

岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。

此外,你可以假设该网格的四条边均被水包围。

示例 1:

输入:grid = [
  ["1","1","1","1","0"],
  ["1","1","0","1","0"],
  ["1","1","0","0","0"],
  ["0","0","0","0","0"]
]
输出:1

class Solution:def dfs(self, grid, r, c):grid[r][c] = 0nr, nc = len(grid), len(grid[0])for x, y in [(r - 1, c), (r + 1, c), (r, c - 1), (r, c + 1)]:if 0 <= x < nr and 0 <= y < nc and grid[x][y] == "1":self.dfs(grid, x, y)def numIslands(self, grid: List[List[str]]) -> int:nr = len(grid)if nr == 0:return 0nc = len(grid[0])num_islands = 0for r in range(nr):for c in range(nc):if grid[r][c] == "1":num_islands += 1self.dfs(grid, r, c)return num_islands
class Solution:def dfs(self,grid,r,c):grid[r][c] =0nr,nc = len(grid),len(grid[0])for x,y in [(r-1,c),(r+1,c),(r,c-1),(r,c+1)]:if 0<= x <nr and 0<=y <nc and grid

200. 岛屿数量 leetcode相关推荐

  1. 广度优先搜索——岛屿数量(Leetcode 200)

    题目选自Leetcode 200. 岛屿数量 经典的搜索题,求岛屿数量 这里我用的是广度优先搜索BFS 最朴素的方法, 虽然效率不高,但是简单易懂 主要的问题在于:如何确定有多少个岛屿? 每次对一个& ...

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

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

  3. 力扣200岛屿数量(DFS/BFS)

    200. 岛屿数量 - 力扣(LeetCode) (leetcode-cn.com) 1.DFS DFS的思路是,首先遍历整个表,找到1结果就加一,之后通过DFS将找到的1连通区域内的所有1变为0,代 ...

  4. 岛屿类-网格类问题-DFS | 力扣200. 岛屿数量

    本文讲解200. 岛屿数量问题,属于常见的岛屿类-网格类问题 本题使用DFS的思想 1 题目 给你一个由 '1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量. 岛屿总是被水包围, ...

  5. Leetcode 200.岛屿数量

    Time: 20190902 Type: Medium 题目描述 给定一个由 '1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量.一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地 ...

  6. Leetcode 200. 岛屿数量 解题思路及C++实现

    解题思路: 典型的深度优先搜索问题,跟第130题 被围绕的区域 有点像,只不过这里不仅要找出被水包围的岛屿,还要计算这些岛屿的总数. 使用深度优先搜索的方法,大循环是遍历整个grid数组(两个for循 ...

  7. leetcode 200.岛屿数量 c代码

    题目如下: 给定一个由 '1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量.一个岛被水包围,并且它 是通过水平方向或垂直方向上相邻的陆地连接而成的.你可以假设网格的四个边均被水包围.示例一 ...

  8. LeetCode 200. 岛屿数量(图的遍历)

    文章目录 1. 题目信息 2. 解题 2.1 DFS 2.2 BFS 1. 题目信息 给定一个由 '1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量.一个岛被水包围,并且它是通过水平方向或 ...

  9. leetcode —— 200. 岛屿数量

    给定一个由 '1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量.一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的.你可以假设网格的四个边均被水包围. 示例 1: 输入: ...

  10. Leetcode 200 岛屿数量 (每日一题 20210720)

    给你一个由 '1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量.岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成.此外,你可以假设该网格的四条边均被 ...

最新文章

  1. 基于Service Mesh构建更现代的服务架构
  2. SAP模块常用增强总结
  3. Android-- FragmentStatePagerAdapter分页
  4. 腾讯最新开源IoT操作系统登上GitHub热榜,最小体积仅1.8 KB,标星1200+
  5. android应用开发全程实录出版
  6. 将应用交付服务引入到OpenStack-【中国IC微专栏】2016.6.16
  7. pandas基础(part3)--描述性统计
  8. android最新框架,XUpdate 一个轻量级、高可用性的Android版本更新框架
  9. 世界顶级的程序员们告诉你:这些书都是你应该读的
  10. pygame写游戏,常用代码记录
  11. jquery 鼠标移动 div内容上下或左右滚动
  12. 【docker】docker 实现 的基础
  13. 衡量视频序列特性的TI(时间信息)和SI(空间信息)
  14. 卷积过滤器的宽度_卷积神经网络简析
  15. 高级Bash脚本编程入门
  16. 手写bpnn算法实现iris多分类
  17. 两个三维向量叉积_三维向量叉乘推导
  18. Android Studio实现计算器功能
  19. 深蓝学院-多传感器融合定位课程学习分享-专栏汇总
  20. 新型信用卡MasterPass

热门文章

  1. mysqli_connect函数未开启_CRMEB打通版linux系统部署客服开启长链接不成功
  2. $.post 提交文件_PHP表单提交
  3. 不干胶设计用什么软件制作_用什么软件制作抖音短视频会比较好?
  4. mybatis中Mapper映射
  5. 使用XMLHTTP Request Object获取服务器数据
  6. sublime text3 eslint 安装教程
  7. 开启进程的两种方式:类、函数
  8. 基于Berkeley DB实现的持久化队列
  9. 程序员的恶性循环:加班-没空学习-老是写同等水平代码-无法提升代码质量-老是出BUG-老是需要修改-加班-......
  10. C#正则表达式获取html标签之间的内容