news 2026/4/30 7:30:55

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

作者头像

张小明

前端开发工程师

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/4/27 2:13:41

转子动力学与模态分析:临界转速计算与稳定状态下的轴心轨迹解析,圆盘质量不平衡条件下的振动响应及...

转子动力学&#xff0c;模态分析求临界转速&#xff0c;稳定状态下转子轴心轨迹&#xff0c;圆盘质量不平衡条件下振动响应操作视频。转子系统跑着跑着突然剧烈振动&#xff1f;八成是遇到临界转速了。这玩意儿就像荡秋千到最高点突然有人推你一把&#xff0c;系统固有频率和旋…

作者头像 李华
网站建设 2026/4/23 13:42:59

Redis 设计思想总结

设计背景 高性能缓存需求: 在2009年前后&#xff0c;Web应用规模迅速扩大&#xff0c;大量读请求对数据库造成巨大压力。开发者需要一种快速、轻量级的内存数据存储系统来缓存热点数据&#xff0c;减轻后端数据库负载。简单性与灵活性: 当时已有的缓存系统&#xff08;如 Memca…

作者头像 李华
网站建设 2026/4/26 3:33:02

AI提示系统的商业模式的用户分层:提示工程架构师的3个方法

AI提示系统商业模式拆解:提示工程架构师的用户分层3步法 副标题:从需求到变现,用分层策略优化提示服务的商业价值 摘要/引言 当我们谈论AI提示系统的商业潜力时,最常遇到的问题不是“技术能不能实现”,而是“如何把技术价值转化为商业价值”。 问题陈述: 通用型提示服…

作者头像 李华
网站建设 2026/4/18 15:51:32

操作系统核心考点与解题模板全解析

操作系统核心考点解析&#xff1a;模块一进程管理、同步互斥与死锁本模块涵盖操作系统中最核心的逻辑部分&#xff0c;侧重于理解进程行为及处理并发冲突。1. 进程状态转换 (State Transitions)理解进程状态的“变迁逻辑”是解题的关键。转换路径触发原因注意点就绪 → 运行进程…

作者头像 李华
网站建设 2026/4/28 1:13:25

2025 四款 AI 平台推荐,谁最高效

2025年&#xff0c;AI应用落地需求持续爆发。开源平台以其灵活性、可控性和低成本&#xff0c;成为众多开发者与企业的首选。面对琳琅满目的工具&#xff0c;如何根据自身需求做出高效选择&#xff1f;本文将从功能完整性、易用性、扩展性、社区生态、商用支持五个核心维度&…

作者头像 李华