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

java做网站例子/百度收录检测

java做网站例子,百度收录检测,设计说明ai生成,京东网站谁建设被围绕的区域 题目描述:给你一个 m x n 的矩阵 board ,由若干字符 ‘X’ 和 ‘O’ ,找到所有被 ‘X’ 围绕的区域,并将这些区域里所有的 ‘O’ 用 ‘X’ 填充。 示例说明请见LeetCode官网。 来源:力扣(Leet…

被围绕的区域

题目描述:给你一个 m x n 的矩阵 board ,由若干字符 ‘X’ 和 ‘O’ ,找到所有被 ‘X’ 围绕的区域,并将这些区域里所有的 ‘O’ 用 ‘X’ 填充。

示例说明请见LeetCode官网。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/surrounded-regions/
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解法一:递归法

首先,如果数组为空,不需要调整,直接返回。

然后,处理逻辑是从数组的四个边开始遍历,如果遇到和其连通的,则将相应位置的字符暂时重置更新为’A’,具体处理逻辑如下:

  • 从第一行、最后一行、第一列、最后一列的每一个字符开始处理;
  • 判断如果当前坐标不在数组范围内或者当前坐标位置的值不是’O’,跳过不用处理;
  • 判断当前坐标位置的值如果不是’O’,说明这个字符是和边上的’O’连通的,将值暂时更新为’A’;
  • 然后递归处理当前位置的前后左右四个位置。

最后遍历数组,将数组中标记为’A’的更新为’O’,这些是和边上的连通也就是没有被’X’围着的;将数组中标记为’O’的更新为’X’,这些是和边上的不连通也就是完全被’X’围着的。

public class LeetCode_130 {private static int row, col;public static void solve(char[][] board) {// 如果数组为空,不需要调整,直接返回if (board.length == 0) {return;}row = board.length;col = board[0].length;// 从第一行和最后一行开始处理for (int i = 0; i < row; i++) {dfs(board, i, 0);dfs(board, i, col - 1);}// 从第一列和最后一列开始处理for (int i = 1; i < col - 1; i++) {dfs(board, 0, i);dfs(board, row - 1, i);}for (int i = 0; i < row; i++) {for (int j = 0; j < col; j++) {if (board[i][j] == 'A') {board[i][j] = 'O';} else if (board[i][j] == 'O') {board[i][j] = 'X';}}}}public static void dfs(char[][] board, int x, int y) {// 如果当前坐标不在数组范围内或者当前坐标位置的值不是'O',跳过不用处理if (x < 0 || x >= row || y < 0 || y >= col || board[x][y] != 'O') {return;}// 当前坐标位置的值不是'O',说明这个字符是和边上的'O'连通的,将值暂时更新为'A'board[x][y] = 'A';// 然后递归处理当前位置的前后左右四个位置dfs(board, x + 1, y);dfs(board, x - 1, y);dfs(board, x, y + 1);dfs(board, x, y - 1);}public static void main(String[] args) {char[][] board = new char[][]{{'X', 'X', 'X', 'X'},{'X', 'O', 'O', 'X'},{'X', 'X', 'O', 'X'},{'X', 'O', 'X', 'X'}};System.out.println("-----填充之前-----");for (char[] chars : board) {for (char c : chars) {System.out.print(c);}System.out.println();}System.out.println();/*** 测试用例,期望输出:* XXXX* XXXX* XXXX* XOXX*/System.out.println("-----填充之后-----");solve(board);for (char[] chars : board) {for (char c : chars) {System.out.print(c);}System.out.println();}}
}

【每日寄语】 把自卑从你的字典里删去。不是每个人都可以成为伟人,但每个人都可以成为内心强大的人,相信自己,找准自己的位置,你同样可以拥有一个有价值的人生。

http://www.lbrq.cn/news/1373923.html

相关文章:

  • wordpress 钩子教学/南京关键词seo公司
  • 商丘网站建设广告/关键词排名优化品牌
  • 网站建设技术培训/中国最新领导班子
  • 平顶山做网站多少钱/百度推广后台登录页面
  • 做动态网站的软件/百度竞价推广费用
  • 网站开发按几年摊销/长沙网络营销推广公司
  • 做网站具体步骤/列举常见的网络营销工具
  • 《电子商务网站开发与管理》/新站优化案例
  • 做网站的带宽多少钱/企业网站管理
  • 武汉市建设局网站/网络营销与策划
  • 上海门户网站的亮点/seo诊断方法步骤
  • wordpress目录权限设置密码/百度seo排名公司
  • 做网站高流量赚广告费/网站怎么开发
  • 如何做网站的链接结构/浏览器谷歌手机版下载
  • 杭州网站推广平台/促销方法100种
  • 广州联雅做的网站怎么样/拉人注册给佣金的app
  • 响应式网站开发流程/合肥seo推广公司
  • 廊坊商昊网站建设/外贸全网营销推广
  • 反馈网站制作/公司网络营销策划书
  • 用vs2010做网站导航/天津seo托管
  • 广告营销方式/seo优化按天扣费
  • 政府网站建设年度报告/百度网盘官网登录入口
  • iis 建网站手机访问/网络营销技巧培训班
  • 网站建设做的人多吗/广州疫情最新消息
  • wp企业网站模板/seo怎么优化软件
  • 红色餐饮网站源码/腾讯营销平台
  • 旅游网站建设色彩搭配表/和生活爱辽宁免费下载安装
  • 女人动漫做受网站/图片外链生成
  • 建域名做网站/湖南优化电商服务有限公司
  • 做设计那些网站可以卖设计/宁波seo优化公司排名
  • Navicat连接远程服务器上的mysql
  • leetcode热题——组合
  • 入门MicroPython+ESP32:安装逗脑IDE及驱动
  • Kubernetes Gateway API 详解:现代流量路由管理方案
  • 深入解析Java Stream Sink接口
  • 3 使用 Jenkins 构建镜像:将你的应用打包成镜像