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

C++ | Leetcode C++题解之第130题被围绕的区域

题目:

题解:

class Solution {
public:const int dx[4] = {1, -1, 0, 0};const int dy[4] = {0, 0, 1, -1};void solve(vector<vector<char>>& board) {int n = board.size();if (n == 0) {return;}int m = board[0].size();queue<pair<int, int>> que;for (int i = 0; i < n; i++) {if (board[i][0] == 'O') {que.emplace(i, 0);board[i][0] = 'A';}if (board[i][m - 1] == 'O') {que.emplace(i, m - 1);board[i][m - 1] = 'A';}}for (int i = 1; i < m - 1; i++) {if (board[0][i] == 'O') {que.emplace(0, i);board[0][i] = 'A';}if (board[n - 1][i] == 'O') {que.emplace(n - 1, i);board[n - 1][i] = 'A';}}while (!que.empty()) {int x = que.front().first, y = que.front().second;que.pop();for (int i = 0; i < 4; i++) {int mx = x + dx[i], my = y + dy[i];if (mx < 0 || my < 0 || mx >= n || my >= m || board[mx][my] != 'O') {continue;}que.emplace(mx, my);board[mx][my] = 'A';}}for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {if (board[i][j] == 'A') {board[i][j] = 'O';} else if (board[i][j] == 'O') {board[i][j] = 'X';}}}}
};

相关文章:

  • 大数据数据治理工具
  • 逻辑问题的基本知识总结越权支付验证码弱口令
  • android 调试UI 按钮无法点击事件问题
  • Vitis HLS 学习笔记--global_array_RAM初始化
  • 【C++初阶学习】第十二弹——stack和queue的介绍和使用
  • 群体优化算法---蜂群优化算法应用于数据挖掘
  • 基于uni-app的 年-月-日 时 时间日期范围控件
  • k8s牛客面经篇
  • 【Spring框架全系列】SpringBoot_3种配置文件_yml语法_多环境开发配置(详细)
  • Linux【工具 03】Telnet服务安装使用(安全性较差 非特殊情况尽量不要使用)
  • 24.面向对象六大原则
  • 【python深度学习】——tensor内部存储结构|内存优化与as_strided|内存紧凑化contiguous
  • 面试题:说说浏览器的缓存机制
  • WebSocket 断网重连、心跳检测功能封装
  • 极简网络用户手册(1)
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • Asm.js的简单介绍
  • classpath对获取配置文件的影响
  • JAVA之继承和多态
  • JS+CSS实现数字滚动
  • JS笔记四:作用域、变量(函数)提升
  • miaov-React 最佳入门
  • mysql常用命令汇总
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • SpiderData 2019年2月16日 DApp数据排行榜
  • underscore源码剖析之整体架构
  • Vultr 教程目录
  • 阿里云Kubernetes容器服务上体验Knative
  • 闭包--闭包作用之保存(一)
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • 基于遗传算法的优化问题求解
  • 使用 Node.js 的 nodemailer 模块发送邮件(支持 QQ、163 等、支持附件)
  • 跳前端坑前,先看看这个!!
  •  一套莫尔斯电报听写、翻译系统
  • 直播平台建设千万不要忘记流媒体服务器的存在 ...
  • # Java NIO(一)FileChannel
  • # 数据结构
  • # 睡眠3秒_床上这样睡觉的人,睡眠质量多半不好
  • # 移动硬盘误操作制作为启动盘数据恢复问题
  • #绘制圆心_R语言——绘制一个诚意满满的圆 祝你2021圆圆满满
  • (145)光线追踪距离场柔和阴影
  • (16)UiBot:智能化软件机器人(以头歌抓取课程数据为例)
  • (27)4.8 习题课
  • (4) PIVOT 和 UPIVOT 的使用
  • (day 12)JavaScript学习笔记(数组3)
  • (function(){})()的分步解析
  • (Java数据结构)ArrayList
  • (大众金融)SQL server面试题(1)-总销售量最少的3个型号的车及其总销售量
  • (二)Pytorch快速搭建神经网络模型实现气温预测回归(代码+详细注解)
  • (附源码)spring boot基于Java的电影院售票与管理系统毕业设计 011449
  • (含react-draggable库以及相关BUG如何解决)固定在左上方某盒子内(如按钮)添加可拖动功能,使用react hook语法实现
  • (六)vue-router+UI组件库
  • (已更新)关于Visual Studio 2019安装时VS installer无法下载文件,进度条为0,显示网络有问题的解决办法
  • (转)Oracle存储过程编写经验和优化措施
  • (转)程序员技术练级攻略