2015-2016 company 亚马逊

本文探讨了图算法中的几个经典问题,包括计算地图上任一点到最近储物柜的距离、识别图像中黑暗区域的数量以及统计二维数组中岛屿的数量。通过广度优先搜索(BFS)解决了这些问题,并分析了其时间复杂度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

q1: 

输入是一个城市的地图的大小(m,n),和一个list,里面包含所有有locker的地理位置。输出一个m*n的二位数组,每个单元的值为到最近locker的距离。问时间复杂度

(这题要从每个locker同时开始bfs)

Q2: 

给一个图片,有着亮的点和黑的点,判断一共有多少个黑暗的块儿。时间复杂度。(这题我觉得相当于找出一个图中有多少个联通分量,我用bfs做的,用一个二维数组记录每个点是否被访问过)

Q3:


给定一个二维数组,每个1连接起来的地方就叫一个 island,问此图中有个多少个island。 
----------------->m 
|00001000000 
|10011110001 
|11110111011 
|00000000000 
n.....................

分析了一下应该是关于图的问题,找到有几个连通图,遍历所有节点进行 BFS:用队列来搞广度优先搜索。

算法: 用队列,每个节点得保存一个visited 标志。

1:从第一行开始,逐行从左向右扫描每个节点(按下面的算法2~4步 ),直到该行所有节点都处理了,再开始下一行。。


2:如果该节点是未访问的,数值为1,则把该节点入队列,并标记它为visted,把island数目+1.

3: 从队列中取出一个node,它左边相邻的,下边相邻的,和右边相邻的,且未访问的,且数字是1节点,把这些节点入队列并标记为visited,直到该队列为空。

4:然后处理该行下一个节点。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值