Leetcode每日一题2020.10.30第463题:岛屿的周长

463.岛屿的周长

题目描述

在这里插入图片描述

示例

在这里插入图片描述

深度优先搜索(DFS)

     类似先序遍历,是搜索算法的一种,它沿着树的深度遍历树的节点,尽可能深的搜索树的分支。当节点v的所有边都已被探寻过,搜索将回溯到发现节点v的那条边的起始节点。这一过程一直进行到已发现从源节点可达的所有节点为止。如果还存在未被发现的节点,则选择其中一个作为源节点并重复以上过程,整个进程反复进行直到所有节点都被访问为止。DFS属于盲目搜索。

思路和算法

思路:岛屿的周长就是岛屿方格与非岛屿方格相邻的边的数量。
采用深度优先搜索算法遍历,每当在DFS遍历中,从一个岛屿方格走向一个非岛屿方格,就将周长加1。同时,为了保证方格不进行重复遍历,将遍历过的方格中的值改变为2。有个问题,我一开始卡在这里,发现解决起来很麻烦,这个问题就是先判断方格的位置。看了题解,我才发现了另一种思路“先污染后治理”,即先做递归调用,再在每个DFS函数的开头判断坐标是否合法,不合法的直接返回。同样的,我们还需要判断该方格是否有岛屿(值是否为1),否则也需要返回。

代码实现

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值