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

经典算法题型之扫雷游戏(二)

解决方案

方法一:深度优先搜索 + 模拟

思路与算法

由于题目要求你根据规则来展示执行一次点击操作后游戏面板的变化,所以我们只要明确该扫雷游戏的规则,并用代码模拟出来即可。

那我们着眼于题目的规则,会发现总共分两种情况:

代码

C++ 实现

class Solution { public: int dir_x[8] = {0, 1, 0, -1, 1, 1, -1, -1}; int dir_y[8] = {1, 0, -1, 0, 1, -1, 1, -1}; void dfs(vector<vector<char>>& board, int x, int y) { int cnt = 0; for (int i = 0; i < 8; ++i) { int tx = x + dir_x[i]; int ty = y + dir_y[i]; if (tx < 0 || tx >= board.size() || ty < 0 || ty >= board[0].size()) { continue; } // 不用判断 M,因为如果有 M 的话游戏已经结束了 cnt += board[tx][ty] == 'M'; } if (cnt > 0) { // 规则 3 board[x][y] = cnt + '0'; } else { // 规则 2 board[x][y] = 'B'; for (int i = 0; i < 8; ++i) { int tx = x + dir_x[i]; int ty = y + dir_y[i]; // 这里不需要在存在 B 的时候继续扩展,因为 B 之前被点击的时候已经被扩展过了 if (tx < 0 || tx >= board.size() || ty < 0 || ty >= board[0].size() || board[tx][ty] != 'E') { continue; } dfs(board, tx, ty); } } } vector<vector<char>> updateBoard(vector<vector<char>>& board, vector<int>& click) { int x = click[0], y = click[1]; if (board[x][y] == 'M') { // 规则 1 board[x][y] = 'X'; } else { dfs(board, x, y); } return board; } };
http://www.jsqmd.com/news/145117/

相关文章:

  • 做鸿蒙分布式应用,别绕开超级终端这个入口
  • 如何注塑加工生产
  • 南方湿冷魔法攻击破局指南:羽绒服材质抗冻性能深度解析 - 资讯焦点
  • 西门子1200双套三坐标六轴联动系统:含SCL语言模板、PLC通信与V90伺服驱动,中文注释程...
  • 转子动力学与模态分析:临界转速计算与稳定状态下的轴心轨迹解析,圆盘质量不平衡条件下的振动响应及...
  • 携程机票最新 token payload逆向
  • 29a + 30b + 31c = 366
  • 创建linux虚拟机的初始化步骤
  • 我发现流末尾数据丢失,后来才知道重写_transform的flush方法
  • DFS -- 1
  • 协议号protocol number
  • 基于springboot反诈APP系统(源码+lw+部署文档+讲解等)
  • 2025最新!自考党必看TOP8 AI论文平台测评与推荐
  • 激励型需求响应 matlab +cplex 激励型需求响应采用激励型需求响应方式对负荷进行转移...
  • 宝宝敏感肌用哪个品牌纸尿裤口碑好?五大口碑纸尿裤品牌专业推荐 - 速递信息
  • 深入解析:关于Redis的List 到 Stream:下一代轻量级消息队列
  • AWS S3枚举基础
  • AWS S3枚举基础
  • 苍穹外卖——DAY3
  • scheme 符号求导
  • 深入解析:在 Ubuntu 上安装 MySQL 的详细指南
  • 基于樽海鞘算法(SSA)的极限学习机(ELM)回归预测对比:BP、GRNN、ELM与SSA - ELM
  • AI提示系统的商业模式的用户分层:提示工程架构师的3个方法
  • [补档] 记于 2025.03.09 晚
  • 意识、物理规律与宿命论
  • 使用Gradio构建AI前端 - RAG召回测试
  • loupeR软件包 | 手动下载 | 上传执行文件 | 改barcode为10x格式
  • 云原生密钥管理:Sealed Secrets与Vault
  • 基于深度学习的电动车头盔佩戴检测系统
  • 嚯,拼多多也开奖了