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

示例 1:

输入:
11110
11010
11000
00000
输出: 1

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/number-of-islands
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
——————————
解体思路:遍历整个地图,从标记为1的点进行广度优先遍历,当遇到一个label为1的点时,d+1,d代表的是岛屿的数量,当广度搜索完一片label为1的区域之后,将对应的label变为0。

不断重复上面的操作,一直到遍历完整个地图。

class Solution:directions = [(-1, 0), (0, -1), (1, 0), (0, 1)]def numIslands(self, grid: List[List[str]]) -> int:if not grid:return 0rows = len(grid)cols = len(grid[0])def neighbor(i,j):for nr,nc in [[i,j-1],[i,j+1],[i-1,j],[i+1,j]]:if 0<=nr<rows and 0<=nc<cols:yield nr,ncd = 0for i in range(rows):for j in range(cols):if grid[i][j] == '1':d += 1grid[i][j]='0'queue = collections.deque([[i,j]])while queue:ii,jj = queue.popleft()for nr,nc in neighbor(ii,jj):if grid[nr][nc] == '1':grid[nr][nc]='0'queue.append([nr,nc])return d

leetcode —— 200. 岛屿数量相关推荐

  1. Leetcode 200.岛屿数量

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

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

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

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

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

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

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

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

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

  6. Javascript(JS) leetcode 200. 岛屿数量

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

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

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

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

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

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

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

最新文章

  1. python什么时候用框架_Python 中三大框架各自的应用场景
  2. netty 文件传输服务器,Netty之二进制文件传输
  3. js 获取今天以及前一周/前20天时间
  4. Eclipse上安装GIT插件EGit及使用
  5. 数据中心怎么关机?光有UPS还不够
  6. 《炉石传说》架构设计赏析(1):游戏启动流程
  7. E. Beautiful Subarrays(思维 01 trie 树)
  8. nssl1452-排行榜【数论】
  9. RUNNOOB python练习题 28 递归 数列
  10. qr二维码遇到的一些问题
  11. Windows2003工组环境通过CA证书对加密WEB服务器
  12. InfluxDB读写性能测试
  13. 用tensorflow实现线性回归算法
  14. 如何设计一个好玩的游戏——游戏设计的艺术
  15. 高德地图通过经纬度获取地区城市
  16. R语言画图——添加数学表达式和R2
  17. 阿里总结的《Java成神之路》 PDF 火了,完整版开放下载!
  18. Mathmatica多项式带余除法代码
  19. include“ “和include<>区别
  20. 90后美女的全能测试蜕变之路

热门文章

  1. ext/iconv/.libs/iconv.o: In function `_php_iconv_strlen'
  2. 安装Sphinx 和 Thinking Sphinx
  3. JavaScript ES2021 新特性解析
  4. Web前端开发面试考点指南
  5. Rsync(远程同步):Linux中Rsync命令的10个实际示例
  6. Spring Boot教程
  7. MySQL集群:高可用性DBMS
  8. OSPF——虚链路详解(含配置命令)
  9. 构建Docker镜像指南,含实战案例
  10. 【Linux】安装x11vnc和xrdp,使用windows远程deepin