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

力扣面试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.lqws.cn/news/150031.html

相关文章:

  • ArcGIS Pro 3.4 二次开发 - 公共设施网络
  • 实时数据仓库是什么?数据仓库设计怎么做?
  • Neovim - 常用插件,提升体验(三)
  • [论文阅读] 人工智能+项目管理 | 当 PMBOK 遇见 AI:传统项目管理框架的破局之路
  • flutter 中Stack 使用clipBehavior: Clip.none, 超出的部分无法响应所有事件
  • 深度学习在非线性场景中的核心应用领域及向量/张量数据处理案例,结合工业、金融等领域的实际落地场景分析
  • 电子行业AI赋能软件开发经典案例——某金融软件公司
  • 软考 系统架构设计师系列知识点之杂项集萃(82)
  • Qt实现一个悬浮工具箱源码分享
  • 【HarmonyOS 5】 社交行业详解以及 开发案例
  • 使用 HTML +JavaScript 从零构建视频帧提取器
  • vue3+ts实现百度地图鼠标绘制多边形
  • Oracle-高频业务表的性能检查
  • 深度解析地质灾害风险普查:RS与GIS技术在泥石流、滑坡灾害中的应用,ArcGIS数据管理、空间数据转换、专题地图制作、DEM分析及实战案例分析
  • Transformer实战——词嵌入技术详解
  • 基于Qt的app开发第十三天
  • Java爬虫技术详解:原理、实现与优势
  • 【设计模式-4.11】行为型——解释器模式
  • JMeter 实现 MQTT 协议压力测试 !
  • MySQL中的部分问题(1)
  • kafka入门学习
  • windows10 php报错
  • 【设计模式】门面/外观模式
  • JVM中的各类引用
  • 【Rust宏编程】Rust有关宏编程底层原理解析与应用实战
  • 5.Declare_Query_Checking.ipynb
  • 群晖NAS套件历史版本资源
  • 【图像处理入门】6. 频域图像处理:傅里叶变换与滤波的奥秘
  • [华为eNSP] OSPF综合实验
  • LeetCode | 滑动窗口的原理及真题解析