leetcode —— 200. 岛屿数量
给定一个由 ‘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. 岛屿数量相关推荐
- Leetcode 200.岛屿数量
Time: 20190902 Type: Medium 题目描述 给定一个由 '1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量.一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地 ...
- Leetcode 200. 岛屿数量 解题思路及C++实现
解题思路: 典型的深度优先搜索问题,跟第130题 被围绕的区域 有点像,只不过这里不仅要找出被水包围的岛屿,还要计算这些岛屿的总数. 使用深度优先搜索的方法,大循环是遍历整个grid数组(两个for循 ...
- leetcode 200.岛屿数量 c代码
题目如下: 给定一个由 '1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量.一个岛被水包围,并且它 是通过水平方向或垂直方向上相邻的陆地连接而成的.你可以假设网格的四个边均被水包围.示例一 ...
- LeetCode 200. 岛屿数量(图的遍历)
文章目录 1. 题目信息 2. 解题 2.1 DFS 2.2 BFS 1. 题目信息 给定一个由 '1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量.一个岛被水包围,并且它是通过水平方向或 ...
- Leetcode 200 岛屿数量 (每日一题 20210720)
给你一个由 '1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量.岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成.此外,你可以假设该网格的四条边均被 ...
- Javascript(JS) leetcode 200. 岛屿数量
给你一个由 '1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量. 岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成. 此外,你可以假设该网格的四条边 ...
- 岛屿问题 通用解-463.岛屿周长-200.岛屿数量-695.岛屿的最大面积-827.最大人工岛
文章目录 岛屿问题 如何在网格上做DFS(通用解) 463.岛屿的周长 题目 题解 -通用模板 题解2 200.岛屿数量 题目 题解 695.岛屿的最大面积 题目 题解 827.最大人工岛 题目 题解 ...
- 力扣200岛屿数量(DFS/BFS)
200. 岛屿数量 - 力扣(LeetCode) (leetcode-cn.com) 1.DFS DFS的思路是,首先遍历整个表,找到1结果就加一,之后通过DFS将找到的1连通区域内的所有1变为0,代 ...
- 岛屿类-网格类问题-DFS | 力扣200. 岛屿数量
本文讲解200. 岛屿数量问题,属于常见的岛屿类-网格类问题 本题使用DFS的思想 1 题目 给你一个由 '1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量. 岛屿总是被水包围, ...
最新文章
- python什么时候用框架_Python 中三大框架各自的应用场景
- netty 文件传输服务器,Netty之二进制文件传输
- js 获取今天以及前一周/前20天时间
- Eclipse上安装GIT插件EGit及使用
- 数据中心怎么关机?光有UPS还不够
- 《炉石传说》架构设计赏析(1):游戏启动流程
- E. Beautiful Subarrays(思维 01 trie 树)
- nssl1452-排行榜【数论】
- RUNNOOB python练习题 28 递归 数列
- qr二维码遇到的一些问题
- Windows2003工组环境通过CA证书对加密WEB服务器
- InfluxDB读写性能测试
- 用tensorflow实现线性回归算法
- 如何设计一个好玩的游戏——游戏设计的艺术
- 高德地图通过经纬度获取地区城市
- R语言画图——添加数学表达式和R2
- 阿里总结的《Java成神之路》 PDF 火了,完整版开放下载!
- Mathmatica多项式带余除法代码
- include“ “和include<>区别
- 90后美女的全能测试蜕变之路
热门文章
- ext/iconv/.libs/iconv.o: In function `_php_iconv_strlen'
- 安装Sphinx 和 Thinking Sphinx
- JavaScript ES2021 新特性解析
- Web前端开发面试考点指南
- Rsync(远程同步):Linux中Rsync命令的10个实际示例
- Spring Boot教程
- MySQL集群:高可用性DBMS
- OSPF——虚链路详解(含配置命令)
- 构建Docker镜像指南,含实战案例
- 【Linux】安装x11vnc和xrdp,使用windows远程deepin