news 2026/6/25 2:37:42

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
经典算法题型之扫雷游戏(二)

解决方案

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

思路与算法

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

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

代码

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; } };
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/23 8:52:16

2025最新!MBA论文写作TOP10:10个AI论文平台深度测评

2025最新&#xff01;MBA论文写作TOP10&#xff1a;10个AI论文平台深度测评 2025年MBA论文写作工具深度测评&#xff1a;为何需要一份权威榜单&#xff1f; 随着人工智能技术的不断进步&#xff0c;越来越多的MBA学生开始借助AI工具提升论文写作效率。然而&#xff0c;面对市场…

作者头像 李华
网站建设 2026/6/24 6:36:31

2025最新!专科生必备8个AI论文平台:开题报告与文献综述全测评

2025最新&#xff01;专科生必备8个AI论文平台&#xff1a;开题报告与文献综述全测评 2025年专科生论文写作工具测评&#xff1a;从功能到体验的全面解析 随着人工智能技术在学术领域的不断渗透&#xff0c;越来越多的专科生开始借助AI工具提升论文写作效率。然而&#xff0c;面…

作者头像 李华
网站建设 2026/6/22 20:43:57

搞砸一次发布赔了6位数后,我才明白平台工程的真正价值。

我永远忘不了那个周五晚上&#xff0c;我满怀信心地按下了发布按钮&#xff0c;然后整个系统就崩了。接下来的十几个小时&#xff0c;就是一场混乱的救火行动。回滚代码、排查日志、紧急修复&#xff0c;整个团队都被拖入了深渊。那一刻我才意识到&#xff0c;我们引以为傲的敏…

作者头像 李华
网站建设 2026/6/22 2:46:01

我们是如何用云端开发,把上线时间从1周压到3分钟的

整个技术圈都在为 AI 疯狂&#xff0c;我们讨论 Copilot 如何让编码效率提升十倍。但这可能只说对了一半&#xff0c;我们用 AI 加速了“写代码”&#xff0c;但作为工程师&#xff0c;我发现自己大量的时间&#xff0c;却消耗在了写代码之外的、那些看不见的“摩擦”上。我认为…

作者头像 李华