当前位置: 首页 > news >正文

【广度优先搜索】FloodFill算法: 图像渲染,岛屿数量,岛屿的最大面积,被围绕的区域

文章目录

  • 1. 图像渲染(LC733)
    • 题目描述
    • 解题思路
    • 代码实现
  • 2. 岛屿数量(LC200)
    • 题目描述
    • 代码实现
  • 3. 岛屿的最大面积(LC695)
    • 题目描述
    • 代码实现
  • 4. 被围绕的区域(LC130)
    • 题目描述
    • 解题思路
    • 代码实现

参考DFS解决FloodFill问题

1. 图像渲染(LC733)

图像渲染

题目描述

解题思路

从起点向四个方向,类似层序遍历,一层一层开始搜索

代码实现

classSolution{publicint[][]floodFill(int[][]image,intsr,intsc,intcolor){intprev=image[sr][sc];if(prev==color)returnimage;intm=image.length;intn=image[0].length;int[]dx={1,-1,0,0};int[]dy={0,0,1,-1};Queue<int[]>queue=newLinkedList<>();queue.offer(newint[]{sr,sc});while(!queue.isEmpty()){int[]top=queue.poll();inti=top[0];intj=top[1];image[i][j]=color;for(intk=0;k<4;k++){intx=i+dx[k];inty=j+dy[k];if(x>=0&&x<m&&y>=0&&y<n&&image[x][y]==prev)queue.offer(newint[]{x,y});}}returnimage;}}

2. 岛屿数量(LC200)

岛屿数量

题目描述

代码实现

classSolution{publicintnumIslands(char[][]grid){Queue<int[]>queue=newLinkedList<>();intm=grid.length;intn=grid[0].length;boolean[][]check=newboolean[m][n];intret=0;int[]dx={1,-1,0,0};int[]dy={0,0,1,-1};for(inti=0;i<m;i++){for(intj=0;j<n;j++){if(!check[i][j]&&grid[i][j]=='1'){ret++;check[i][j]=true;queue.offer(newint[]{i,j});while(!queue.isEmpty()){int[]top=queue.poll();intii=top[0];intjj=top[1];for(intk=0;k<4;k++){intx=ii+dx[k];inty=jj+dy[k];if(x>=0&&x<m&&y>=0&&y<n&&!check[x][y]&&grid[x][y]=='1'){queue.offer(newint[]{x,y});check[x][y]=true;}}}}}}returnret;}}

3. 岛屿的最大面积(LC695)

岛屿的最大面积

题目描述

代码实现

classSolution{publicintmaxAreaOfIsland(int[][]grid){intm=grid.length;intn=grid[0].length;boolean[][]check=newboolean[m][n];int[]dx={0,0,1,-1};int[]dy={1,-1,0,0};intret=0;Queue<int[]>queue=newLinkedList<>();for(inti=0;i<m;i++){for(intj=0;j<n;j++){if(!check[i][j]&&grid[i][j]==1){check[i][j]=true;queue.offer(newint[]{i,j});intarea=1;while(!queue.isEmpty()){int[]top=queue.poll();intii=top[0];intjj=top[1];for(intk=0;k<4;k++){intx=ii+dx[k];inty=jj+dy[k];if(x>=0&&x<m&&y>=0&&y<n&&!check[x][y]&&grid[x][y]==1){queue.offer(newint[]{x,y});check[x][y]=true;area++;}}}ret=Math.max(ret,area);}}}returnret;}}

4. 被围绕的区域(LC130)

被围绕的区域

题目描述

解题思路

由于边界的O难处理,可以先遍历边界,对边界进行广度优先遍历,修改为'.',接着对数组进行遍历,如果遇到'O'可以直接修改为'x';遇到'.'可以直接修改为'O'

代码实现

classSolution{Queue<int[]>queue=newLinkedList();intm,n;int[]dx={0,0,1,-1};int[]dy={1,-1,0,0};publicvoidsolve(char[][]board){m=board.length;n=board[0].length;for(inti=0;i<m;i++){if(board[i][0]=='O')bfs(board,i,0);if(board[i][n-1]=='O')bfs(board,i,n-1);}for(intj=0;j<n;j++){if(board[0][j]=='O')bfs(board,0,j);if(board[m-1][j]=='O')bfs(board,m-1,j);}for(inti=0;i<m;i++){for(intj=0;j<n;j++){if(board[i][j]=='O')board[i][j]='X';if(board[i][j]=='.')board[i][j]='O';}}}voidbfs(char[][]board,inti,intj){queue.offer(newint[]{i,j});board[i][j]='.';while(!queue.isEmpty()){int[]top=queue.poll();intii=top[0];intjj=top[1];for(intk=0;k<4;k++){intx=ii+dx[k];inty=jj+dy[k];if(x>=0&&x<m&&y>=0&&y<n&&board[x][y]=='O'){board[x][y]='.';queue.offer(newint[]{x,y});}}}}}
http://www.jsqmd.com/news/536357/

相关文章:

  • OpenClaw故障演练:Qwen3-VL:30B飞书服务降级方案
  • TAI-TECH台庆 WCM2012F2SF-900T04 SOP-4 共模滤波器
  • C#实现图片人脸检测截取并保存为新图片
  • 如何用Python SDK实现零代码量化交易?——富途OpenAPI实战指南
  • BeepBox音乐创作终极指南:零基础在线制作器乐旋律
  • 嵌入式系统开发核心技术解析与实践
  • 告别IPTV源失效烦恼:iptv-checker智能检测工具全攻略
  • 微搭低代码MBA 培训管理系统实战 19——学员档案管理功能实现
  • 从踩坑到流畅:OpenClaw 本地 AI 智能体部署与高效使用指南
  • 一键体验:星图平台OpenClaw+百川2-13B-4bits量化模型沙盒环境
  • OpenClaw+GLM-4.7-Flash智能记账:消费分类与分析
  • 服装智能制造 IoT 方案:小单快反场景标签打印一体化终端技术解析
  • 伏特台风(Volt Typhoon):针对关键基础设施的无文件攻击与潜伏技术深度剖析
  • 核心数据怕泄露?内部流程跑不动?我的数字化“双保险”来了!
  • OpenClaw语音扩展:Qwen3-VL:30B对接飞书语音消息转文本
  • 3大方案4步流程:DeepSeek-R1-Distill-Llama-8B开源项目部署高效落地指南
  • 2026红外模组优质厂家推荐榜:红外模组、红外热成像仪、红外监控、红外相机、非制冷红外、人体测温仪、便携式红外热像仪选择指南 - 优质品牌商家
  • 深度学习03 -来源于李宏毅老师的课堂
  • OpenClaw智能客服原型:用nanobot镜像搭建QQ问答机器人
  • 【2025】加入 uniapp 的一年
  • 深入解析ChatTTS Wheel文件:原理、实现与生产环境最佳实践
  • OpenCode AI编程助手:从认知到实践的全方位技术指南
  • 突破ChatGPT地区限制:AI辅助开发实战指南
  • 自动化周报生成:OpenClaw+nanobot聚合多平台工作痕迹
  • 成本警报系统:监控OpenClaw+Qwen3.5-9B的Token消耗突破阈值
  • OpenClaw邮件智能处理:Qwen3-32B-Chat分类归档与自动回复
  • 2026内衬聚氨酯靠谱供应商推荐指南:耐磨防腐管道/聚氨酯板/钢衬聚氨酯复合管/钢衬聚氨酯弯头/钢衬聚氨酯管道/选择指南 - 优质品牌商家
  • 基于vue的班级信息管理系统[vue]-计算机毕业设计源码+LW文档
  • 保健用品企业消字号备案及代工全链条服务:祖传秘方申请批号/秘方委托生产、备案电话/秘方申报认证机构电话/选择指南 - 优质品牌商家
  • 2023B卷,最长和为目标值的子序列