当前位置: 首页 > 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.dtcms.com/a/233022.html

相关文章:

  • 企业入驻成都芯谷金融中心·文化科技产业园优势深度解析
  • IDEA 包分层显示设置
  • 宠物车载安全座椅市场报告:解读行业趋势与投资前景
  • 航道无人机巡检系统
  • 无 sudo 权限下 Conda 安装 GCC 全攻略:虚拟环境适配、版本冲突解决与实战指南
  • 域名解析概述
  • C++:abnormal terminate std::stoi,空串
  • PostgreSQL 入门教程
  • Vue中实现表格吸底滚动条效果,列太多时左右滚动条始终显示在页面中
  • SSRF漏洞
  • SQL SERVER中获取外部数据的两种方法!
  • Conda 基本使用命令大全
  • Wireshark使用教程(含安装包和安装教程)
  • 解构与重构:PLM 系统如何从管理工具进化为创新操作系统?
  • 缓解停车难:4G地磁如何重构车位分配?
  • DeepSeek提示词撰写心得
  • DeepSeek 赋能智能安防:从行为预测到即时预警的革新之路
  • 快速用 uv 模拟发布一个 Python 依赖包到 TestPyPI 上,以及常用命令
  • 使用 uv 工具快速部署并管理 vLLM 推理环境
  • Amazing晶焱科技:电子系统产品在多次静电放电测试后的退化案例
  • 【Fifty Project - D33】
  • 仓库拉下ssm项目配置启动
  • ros2--图像/image
  • YOLO在C#中的完整训练、验证与部署方案
  • 数据分析后台设计指南:实战案例解析与5大设计要点总结
  • Java开发中复用公共SQL的方法
  • 测试W5500的第11步_使用ARP解析IP地址对应的MAC地址
  • Postgresql字符串操作函数
  • 【笔记】解决MSYS2安装后cargo-install-update.exe-System Error
  • 如果科技足够发达,是否还需要维持自然系统(例如生物多样性)中那种‘冗余’和‘多样性’,还是可以只保留最优解?