news 2026/4/16 16:45:01

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

作者头像

张小明

前端开发工程师

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/16 6:24:05

电动汽车动力系统匹配与整车经济性计算模型

1、电动汽车动力系统匹配计算模型&#xff1a;输入整车参数及性能要求&#xff0c;一键生成驱动系统的扭矩功率峰值转速等参数。 2、整车动力经济性计算模型&#xff1a;包含NEDC/WLTC/CLTC工况&#xff0c;输入整车参数可生成工况电耗、百公里电耗、匀速工况续航、百公里电耗等…

作者头像 李华
网站建设 2026/4/16 13:40:40

探秘文件包含漏洞:从本地挖掘到远程威胁,PHP伪协议成“帮凶”

引入 文件包含是编程中常用的一种技术&#xff0c;它允许一个程序包含并执行另一个文件的内容&#xff0c;本意是为了提高代码的复用性和可维护性。然而&#xff0c;当这种包含机制没有得到正确的安全控制时&#xff0c;就可能引发文件包含漏洞。攻击者可以利用这个漏洞&#…

作者头像 李华
网站建设 2026/4/16 2:09:53

基于springboot房屋租赁管理系统(源码+lw+部署文档+讲解等)

课题介绍本课题聚焦房屋租赁行业传统管理模式中信息不对称、租赁流程繁琐、合同管理不规范、租金监管缺失等痛点&#xff0c;设计并实现基于Spring Boot框架的房屋租赁管理系统。系统以Spring Boot为后端核心开发框架&#xff0c;整合MyBatis-Plus实现租赁数据高效持久化&#…

作者头像 李华
网站建设 2026/4/16 13:35:00

国密算法开发实战:基于GMSSL快速集成SM2、SM3、SM4加密体系!

随着国家密码标准在各行业的深入推广&#xff0c;SM2、SM3、SM4算法已成为构建安全系统的基石。借助GMSSL这一轻量级、高兼容性的开源密码库&#xff0c;开发者能够以较低成本实现三大国密算法的工程化落地。聚焦于SM2非对称加密、SM3哈希摘要与SM4对称加密在实际项目中的协同应…

作者头像 李华
网站建设 2026/4/16 15:37:25

STM32F103 学习笔记-21-串口通信(第1节)-串口通信协议简介

引言 上节章我们讲解了通信的基本概念&#xff0c;包括并行通信、串行通信、同步和异步通信等。本章&#xff0c;我们正式进入串口通信的学习。串口通信是嵌入式开发中最常用的通信方式之一&#xff0c;理解其原理对后续实践至关重要。本节重点讲解串口通信协议的理论部分&…

作者头像 李华
网站建设 2026/4/16 15:33:07

【课程设计/毕业设计】基于springboot的课程互助学习系统 “课程答疑、资源共享、组队学习” 一体化平台【附源码、数据库、万字文档】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华