Leetcode 岛屿数量 BFS广度优先搜索实现

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

示例 1:

输入:
11110
11010
11000
00000

输出: 1

示例 2:

输入:
11000
11000
00100
00011

输出: 3

 

在上一节队列的基础上,使用BFS广度优先搜索实现
 
1. 找到1个1,将其坐标入队
2. 检查起上下左右,将其中为1的坐标入队,并将该坐标出队
3. 依次检查队首的点的上下左右,将其中为1的入队,并将该坐标出队
4. 当队列为空时,即找到一个岛

从(0,0)开始找,

  (0,0)----->
       |11110
       |11010
       |11000
       ↓00000

队列实现如下

class MyCircularQueue:

	def __init__(self, k: int): #and
		"""
		Initialize your data structure here. Set the size of the queue to be k.
		"""
		self.__length = k
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值