vlambda博客
学习文章列表

岛屿的数量(深度优先搜索算法)

前言

文本已收录至我的GitHub仓库,欢迎Star:https://github.com/bin392328206/six-finger
种一棵树最好的时间是十年前,其次是现在
我知道很多人不玩qq了,但是怀旧一下,欢迎加入六脉神剑Java菜鸟学习群,群聊号码:549684836 鼓励大家在技术的路上写博客

絮叨

小六六第一眼看的时候,一脸懵逼,哈哈,这个是力扣每日一题推送的,主要是以前都不刷算法的,之后决定重新做人,慢慢刷题路。

题目

给你一个由 '1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量。

岛屿总是被水包围,并且每座岛屿只能由水平方向和竖直方向上相邻的陆地连接形成。

此外,你可以假设该网格的四条边均被水包围。

示例 1:

输入:11110110101100000000输出: 1

示例 2:

输入:11000110000010000011输出: 3

解释: 每座岛屿只能由水平和/或竖直方向上相邻的陆地连接而成。

以上就是题目了,小六六跟大家一起来读读题,其实他的意思就是,每一个位置的前后左右能够用1连起来就是一个岛屿,所以小六六画了2个图帮大家理解题目的意思

岛屿的数量(深度优先搜索算法)

题解

怎么题目可以使用深度优先和广度优先算法去做,不过小六六就牛逼了,连这2个概念都不清楚,大佬大佬。如果不清楚这2个概念的你们也可以看下面的文章

  • dfs和bfs

虽然小六六不懂这些概念,但是还是跟着把题目做出来了,哈哈,重点是跟着答案。但是我发现明白了思想好像也不难,下面是题目的代码,小六六打算用广度优先撸一下

岛屿的数量(深度优先搜索算法)
岛屿的数量(深度优先搜索算法)

深度遍历的方法岛屿的数量(深度优先搜索算法)

测试方法岛屿的数量(深度优先搜索算法)

结尾

答案是2个。哈哈 ,解法很多,大家可以多去尝试,大家加油吧,源码在我的github上 或者去力扣拿。答案很多。

日常求赞

好了各位,以上就是这篇文章的全部内容了,能看到这里的人呀,都是真粉。

创作不易,各位的支持和认可,就是我创作的最大动力,我们下篇文章见

六脉神剑 | 文 【原创】如果本篇博客有任何错误,请批评指教,不胜感激 !