尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
算法面试——岛屿问题:岛屿数量、最大面积、周长
岛屿问题的核心是 DFS 遍历二维数组把连通的 1 标记为已访问。一、岛屿数量publicintnumIslands(char[][]grid){intcount0;for(inti0;igrid.length;i){for(intj0;jgrid[0].length;j){if(grid[i][j]1){dfs(grid,i,j);count;}}}returncount;}privatevoiddfs(char[][]grid,intr,intc){if(r0||c0||rgrid.length||cgrid[0].length||grid[r][c]!1)return;grid[r][c]0;// 标记已访问dfs(grid,r-1,c);dfs(grid,r1,c);dfs(grid,r,c-1);dfs(grid,r,c1);}二、岛屿的最大面积publicintmaxAreaOfIsland(int[][]grid){intmaxArea0;for(inti0;igrid.length;i){for(intj0;jgrid[0].length;j){if(grid[i][j]1){maxAreaMath.max(maxArea,dfs(grid,i,j));}}}returnmaxArea;}privateintdfs(int[][]grid,intr,intc){if(r0||c0||rgrid.length||cgrid[0].length||grid[r][c]!1)return0;grid[r][c]0;return1dfs(grid,r-1,c)dfs(grid,r1,c)dfs(grid,r,c-1)dfs(grid,r,c1);}三、岛屿的周长publicintislandPerimeter(int[][]grid){for(inti0;igrid.length;i){for(intj0;jgrid[0].length;j){if(grid[i][j]1)returndfs(grid,i,j);}}return0;}privateintdfs(int[][]grid,intr,intc){if(r0||c0||rgrid.length||cgrid[0].length||grid[r][c]0)return1;if(grid[r][c]2)return0;grid[r][c]2;returndfs(grid,r-1,c)dfs(grid,r1,c)dfs(grid,r,c-1)dfs(grid,r,c1);} 觉得有用的话点赞 关注【张老师技术栈】吧
RELATED

相关推荐

MSP Zero Code Studio实战:图形化开发MSPM0 MCU,快速构建嵌入式应用

MSP Zero Code Studio实战:图形化开发MSPM0 MCU,快速构建嵌入式应用

1. 项目概述:当MCU开发告别代码行 如果你是一位电子爱好者、创客,或者是一名负责硬件原型开发的工程师,面对一块崭新的微控制器(MCU)开发板,最让你头疼的是什么?十有八九,是那无穷无…

📅 2026/9/12 2:13:59
AI Agent 面试题 570:如何设计多Agent系统的消息路由和转发机制?

AI Agent 面试题 570:如何设计多Agent系统的消息路由和转发机制?

🔥 AI Agent 面试题 570:如何设计多Agent系统的消息路由和转发机制?摘要:本文深入解析了「如何设计多Agent系统的消息路由和转发机制?」这一 AI Agent 领域的核心面试题。文章从 通信协议设计 的基本概念出发&#xff…

📅 2026/9/12 4:17:48
JS逆向进阶:控制流平坦化与VM保护的破解思路

JS逆向进阶:控制流平坦化与VM保护的破解思路

做JS逆向的人,过了基础变量混淆、字符串加密这道坎之后,很快会遇到两座绕不开的大山:控制流平坦化与虚拟机(VM)保护。前者把线性逻辑拆成七零八落的代码块,靠状态机跳来跳去;后者直接把原始逻辑…

📅 2026/9/9 22:00:26
MORE NEWS

更多资讯

📰

deer-flow多智能体系统内存优化实战:沙盒与记忆层调优指南

1. 项目概述:一个被“内存”反复锤打的智能体协作系统“deer-flow”这个名字乍一听像某种轻盈的自然现象,但实际接触过它的开发者,十有八九会在调试日志里看到一串刺眼的十六进制数字——0xc0000005。这不是什么加密密钥,而是 Win…

📰

OAuth2.0授权协议:核心流程与安全实践解析

1. 从混乱到标准:OAuth2的进化之路记得2015年第一次接触第三方登录集成时,我面对十几个不同平台的API文档差点崩溃。微信要用XML格式传参、微博的access_token有效期只有1天、QQ的授权流程居然要跳转三次页面...这种"百花齐放"的混乱局面&…

📰

Arduino IDE跨平台安装原理与实操指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

iOS安全认证实战:Token、MD5与RSA核心技术解析

1. iOS网络安全认证概述在移动应用开发领域,安全认证是保护用户数据和系统完整性的第一道防线。作为iOS开发者,我们每天都要面对各种认证机制的实现和优化。Token、MD5和RSA这三种技术看似基础,却是构建iOS应用安全体系的三大支柱。记得去年我…

📰

盛最多水的容器:双指针解法核心原理与证明

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

SwiftUI交互组件开发实战:弹窗与菜单深度优化

1. SwiftUI交互组件核心功能解析在iOS应用开发中,交互反馈机制直接影响用户体验品质。SwiftUI作为Apple主推的声明式UI框架,提供了Alert、Sheet、ContextMenu三种基础交互组件,但实际开发需求往往更为复杂。以社交类应用为例,消息…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬