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

力扣面试150题--被围绕的区域

Day 60

题目描述

在这里插入图片描述

思路

中译中 此题的目的在于找到被X包围的O,没有被完全包围(指与边缘的O相连)不算,将完全包围的O变成X
做法:根据以上中译中,我们可以逆向思维,从边缘的O开始找到与其相连的O,这种岛屿是不需要修改为X,我们将其修改为1,在最后再统一处理,将1改为O,将O改为X。
具体找到i相连的岛屿,可以通过深度搜索实现。

class Solution {public void dfs(char[][]board,int i,int j){if(i>=board.length||i<0||j<0||j>=board[0].length||board[i][j]!='O'){//超出边缘或者不为0就返回return;}//边缘为0board[i][j]='1';dfs(board,i-1,j);dfs(board,i+1,j);dfs(board,i,j-1);dfs(board,i,j+1);}public void solve(char[][] board) {//换个思路,只要和边缘的O相连的都是不该被改成X的点for(int j=0;j<board[0].length;j++){//第一行和最后一行dfs(board,0,j);dfs(board,board.length-1,j);}for(int i=0;i<board.length;i++){//第一列和最后一列dfs(board,i,0);dfs(board,i,board[0].length-1);}for(int i=0;i<board.length;i++){for(int j=0;j<board[0].length;j++){if(board[i][j]=='1'){board[i][j]='O';}else if(board[i][j]=='O'){board[i][j]='X';}else{board[i][j]=board[i][j];}}}return;}
}
http://www.xdnf.cn/news/12249.html

相关文章:

  • std__map,std__unordered_map,protobuf__map之间的性能比较
  • 网页显示:嗯…无法访问此页面,的解决办法和原理
  • 大模型学习
  • 家政维修平台实战14登录验证
  • 如何用 SD-WAN 打破 ERP 内网限制,实现随时随地高效访问?
  • 总结HTML中的文本标签
  • 危化工厂部署人员定位系统的重要性
  • 算法性能分析
  • 智慧赋能:移动充电桩的能源供给革命与便捷服务升级
  • TripGenie:畅游济南旅行规划助手:个人工作纪实(九)
  • Linux 下生成动态库时 -fPIC的作用详解
  • 一些常用的JavaScript简写技巧
  • 如何利用Facebook优化TikTok的跨境商品推广效果
  • STM32 NVIC中断控制器
  • 【Algorithm】Union-Find简单介绍
  • 【Docker管理工具】部署Docker可视化管理面板Dpanel
  • [Java 基础]数组
  • 8086的简化版8088
  • PublishSubject、ReplaySubject、BehaviorSubject、AsyncSubject的区别
  • B+树知识点总结
  • Python训练营打卡Day45
  • Java高级 | 【实验五】Spring boot+mybatis操作数据库
  • 【网络安全】XSS攻击
  • Docker 与容器技术的未来:从 OCI 标准到 eBPF 的演进
  • EFI(x64)简易开发环境
  • 第七十四篇 高并发场景下的Java并发容器:用生活案例讲透技术原理
  • 一个基于Java的简单抢单功能实现示例,模拟多线程环境下的并发抢单场景
  • 【运维心得】内存占用虚标真相
  • ES6模块化
  • Java并发编程实战 Day 9:锁优化技术