golang刷leetcode 技巧之如何解决岛屿的最大面积问题
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,这篇文章主要介绍golang刷leetcode 技巧之如何解决岛屿的最大面积问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!给定一个包含了一些 0 和 1 的非空二维数组 g
千家信息网最后更新 2025年12月02日golang刷leetcode 技巧之如何解决岛屿的最大面积问题
这篇文章主要介绍golang刷leetcode 技巧之如何解决岛屿的最大面积问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
给定一个包含了一些 0 和 1 的非空二维数组 grid 。
一个 岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在水平或者竖直方向上相邻。你可以假设 grid 的四个边缘都被 0(代表水)包围着。
找到给定的二维数组中最大的岛屿面积。(如果没有岛屿,则返回面积为 0 。)
示例 1:
[[0,0,1,0,0,0,0,1,0,0,0,0,0],
[0,0,0,0,0,0,0,1,1,1,0,0,0],
[0,1,1,0,1,0,0,0,0,0,0,0,0],
[0,1,0,0,1,1,0,0,1,0,1,0,0],
[0,1,0,0,1,1,0,0,1,1,1,0,0],
[0,0,0,0,0,0,0,0,0,0,1,0,0],
[0,0,0,0,0,0,0,1,1,1,0,0,0],
[0,0,0,0,0,0,0,1,1,0,0,0,0]]
对于上面这个给定矩阵应返回 6。注意答案不应该是 11 ,因为岛屿只能包含水平或垂直的四个方向的 1 。
示例 2:
[[0,0,0,0,0,0,0,0]]
对于上面这个给定的矩阵, 返回 0。
注意: 给定的矩阵grid 的长度和宽度都不超过 50。
解题思路:
1,这个问题和朋友圈那个问题类似,只不过求解目标不一样
2,朋友圈问题是求解连通域个数,这里是求解联通域面积
3,解决方案:深度优先遍历
4,深度优先遍历最简单的方法便是递归
5,这里比朋友圈问题复杂的地方在于,朋友圈问题是对称的,因此是个一维问题,这个问题是二维问题
6,小技巧:是否访问一般用map存,当时golang访问map需要判定,所以简单方法用slice存
代码实现:
func maxAreaOfIsland(grid [][]int) int {visited:=make([][]int,len(grid))for i:=0;ivisited[i]=make([]int,len(grid[0]))}max:=0for i:=0;ifor j:=0;jv:=dfs(grid,visited,i,j)if v>max{max=v}}}return max}func dfs(grid,visited [][]int,i,j int)int{if i<0 ||j<0 ||i>=len(grid) ||j>=len(grid[0]) ||grid[i][j]!=1 ||visited[i][j]==1{return 0}visited[i][j]=1return 1+dfs(grid,visited,i+1,j)+dfs(grid,visited,i,j+1)+dfs(grid,visited,i-1,j)+dfs(grid,visited,i,j-1)}
以上是"golang刷leetcode 技巧之如何解决岛屿的最大面积问题"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!
问题
岛屿
面积
朋友
最大
技巧
矩阵
二维
代表
内容
数组
方向
方法
水平
深度
示例
篇文章
复杂
对称
两个
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
连接网络安全类型
美国cn2云服务器
常用的数据库软件及其用途规模
易语言数据库名称
哪个学校研究生是数据库方向
pve换时间服务器
ucsc数据库ID
如果软件开发过程中使用增量模型
数据库技术01
西安邦易网络技术
信息网络安全许可证
lol韩服的服务器
南华大学共建网络安全实验室
通州区综合网络技术服务哪家好
域名服务器是多少台
开展网络安全保卫工作
软件开发逻辑会记录在哪里
服务器系统linux
腾讯服务器ip能变吗
网络安全与大数据管理硕士
阿里巴巴服务器运行游戏
网信网络安全责任制
提升区块链网络安全
光迅科技网络安全概念
河北通用软件开发调试
软件开发公司周会会议纪要
数据库中的记录是实体吗
数据库差异备份是什么
app项目搭建需要数据库吗
中兴 波分软件开发