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

凡科轻站小程序怎么样qq说说赞在线自助下单网站

凡科轻站小程序怎么样,qq说说赞在线自助下单网站,短裙怎么做视频网站,南宁建设局题目描述: 给你一个 m x n 的矩阵 board ,由若干字符 X 和 O 组成,捕获 所有 被围绕的区域: 连接:一个单元格与水平或垂直方向上相邻的单元格连接。区域:连接所有 O 的单元格来形成一个区域。围绕&#x…

题目描述:

给你一个 m x n 的矩阵 board ,由若干字符 'X' 和 'O' 组成,捕获 所有 被围绕的区域

  • 连接:一个单元格与水平或垂直方向上相邻的单元格连接。
  • 区域:连接所有 'O' 的单元格来形成一个区域。
  • 围绕:如果您可以用 'X' 单元格 连接这个区域,并且区域中没有任何单元格位于 board 边缘,则该区域被 'X' 单元格围绕。

通过将输入矩阵 board 中的所有 'O' 替换为 'X' 来 捕获被围绕的区域

示例 1:

输入:board = [["X","X","X","X"],["X","O","O","X"],["X","X","O","X"],["X","O","X","X"]]

输出:[["X","X","X","X"],["X","X","X","X"],["X","X","X","X"],["X","O","X","X"]]

解释:

在上图中,底部的区域没有被捕获,因为它在 board 的边缘并且不能被围绕。

示例 2:

输入:board = [["X"]]

输出:[["X"]]

提示:

  • m == board.length
  • n == board[i].length
  • 1 <= m, n <= 200
  • board[i][j] 为 'X' 或 'O'

题目链接:

. - 力扣(LeetCode)

解题主要思路:

这题我觉得有两个麻烦,第一个麻烦就是不好理解题目啥意思,其实题目的意思是:除了边边的 'O' 以及能跟其构成‘连接’的 'O',其余的全部改成 'X'。第二个麻烦就是理解完题目的意思后,怎么把符合条件的区域 'O' 和 不符合条件的区域 'O' 分隔开来,其实有个办法就是,咱们遍历边边的元素,如果有不符合条件的 'O'(边边的 'O' 以及能跟其构成‘连接’的 'O'),咱们把他改成于 'O' 'X' 无关的符号,譬如 '?' ,之后二维数组内的所有 'O' 都是符合条件的 'O'(即需要改为 'X' 的),数组内的所有 '?' 都是原本不符合条件的 'O' ,我们需要将其改回来。

解题代码:

class Solution {
public:typedef pair<int, int> PII;int dx[4]{0, 0, 1, -1};int dy[4]{1, -1, 0, 0};int m, n;void solve(vector<vector<char>>& board) {m = board.size(), n = board[0].size();// 先将与边缘的‘O‘相连的全部改为’O‘、‘X’无关的符号,譬如'?';for (int i = 0; i < n; ++i) { // 第一行和最后一行if (board[0][i] == 'O') bfs(board, 0, i );if (board[m-1][i] == 'O') bfs(board, m-1, i);}for (int j = 0; j < m; ++j) { // 第一列和最后一列if (board[j][0] == 'O') bfs(board, j, 0);if (board[j][n-1] == 'O') bfs(board, j, n-1);}// 此时二维数组board里的全部'O'全部符合题目要求,可直接改成'X'for (int i = 0; i < m; ++i) {for (int j = 0; j < n; ++j) {if (board[i][j] == '?') board[i][j] = 'O';else if (board[i][j] == 'O') board[i][j] = 'X';}}}void bfs(vector<vector<char>>& board, int r, int c){queue<PII> que;que.push(make_pair(r, c));board[r][c] = '?';while (que.size()) {auto [a, b] = que.front();que.pop();for (int i = 0; i < 4; ++i) {int x = a + dx[i];int y = b + dy[i];if (x >= 0 && x < m && y >= 0 && y < n && board[x][y] == 'O') {que.push(make_pair(x, y));board[x][y] = '?';}}}}
};

http://www.yayakq.cn/news/416454/

相关文章:

  • 织梦cms建设企业网站货代一般用什么网站开发客户
  • 四川建设厅官方网站是多少怎样判断网站的好坏
  • 高端定制网站建设网站新闻列表页面代码
  • 哪些网站可以做微信支付祺越网站建设
  • 当前网站开发用什么软件网站后台传图片
  • 中国电信网站备案 流程想攻击一个网站怎么做
  • 专业苏州网站建设公司排名北京seo顾问服务
  • 百度推广怎么做的网站wordpress摄影主题
  • 福田区住房和建设局官方网站双德网站建设
  • 苏州网站优化网站设计文案
  • 网站 分辨率商场设计网站
  • 哪些网站需要备案杭州大的做网站的公司
  • 宁波做网站建设做网站前景怎么样
  • 电子商务网站建设前景安卓应用市场官方版下载
  • 网站ip指向列表产品开发管理系统
  • 网站备案拍照背景幕布网站分析模板
  • 网站建设用处手机上干点啥能挣零花钱
  • 信用网站建设情况与小学生一起做网站
  • 百度免费资源网站windows版本的wordpress
  • 网站建设与运营总结字体设计教程网站好
  • 河南建设部网站官网局网站建设自查
  • wordpress站点设置使用期限com网站注册
  • 天津站内关键词优化东莞网站建设推广品众
  • 一个主机多个网站怎样加强公司网站建设
  • 网站规划与设计范文企业网站开发一般多少钱
  • 建设银行征信中心个人信用查询官方网站合肥建站免费模板
  • 点蜜免费空间上传网站网站建设刂金手指下拉十五
  • 建立能网上交易的网站多少钱上海做公司网站多少钱
  • 有没有网站建设的兼职郑州市建网站
  • 北京网站建设公司资讯施工企业怎样报考a证