news 2026/4/23 15:59: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/23 13:43:43

基于springboot反诈APP系统(源码+lw+部署文档+讲解等)

课题介绍本课题聚焦当前电信网络诈骗高发、反诈宣传覆盖不足、群众预警响应滞后等痛点&#xff0c;设计并实现基于Spring Boot框架的反诈APP系统。系统以Spring Boot为后端核心开发框架&#xff0c;整合MyBatis-Plus实现反诈数据高效持久化&#xff0c;搭配MySQL构建安全可靠的…

作者头像 李华
网站建设 2026/4/23 11:04:09

一文讲清楚DOM动态观察器MutationObserver的原理和使用场景

一文讲清楚DOM动态观察器MutationObserver的原理和使用场景 1. 引出 前端的童鞋都应该了然一件事,不管是借助框架像vue/react/angular,还是原生开发,就是我们开发来开发去,操作来操作去,其实本质都是在对页面上的HTML内容进行CURD 那既然我们是在对HTML进行CURD,那我们是…

作者头像 李华
网站建设 2026/4/23 12:15:24

云原生密钥管理:Sealed Secrets与Vault

在云原生环境中&#xff0c;密钥管理是保障系统安全的关键环节。密钥就像是一把打开系统资源的“钥匙”&#xff0c;如果管理不当&#xff0c;就会面临密钥泄露、管理失败等严重问题&#xff0c;从而威胁整个云原生系统的安全。而 Sealed Secrets 和 Vault 就是解决这些问题的有…

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

基于深度学习的电动车头盔佩戴检测系统

博主介绍&#xff1a;java高级开发&#xff0c;从事互联网行业六年&#xff0c;熟悉各种主流语言&#xff0c;精通java、python、php、爬虫、web开发&#xff0c;已经做了多年的设计程序开发&#xff0c;开发过上千套设计程序&#xff0c;没有什么华丽的语言&#xff0c;只有实…

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

AI应用架构师如何优化增量学习应用实践

AI应用架构师如何优化增量学习应用实践 一、引入与连接&#xff1a;当AI模型遇上“实时数据洪流” 凌晨3点&#xff0c;某电商AI应用架构师李明盯着监控大屏上的“推荐准确率”曲线——这条原本平稳的曲线&#xff0c;正随着凌晨促销活动的开启快速下滑。原因很简单&#xff1a…

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

Java毕设选题推荐:基于springboot+vue的校园学习互助系统基于springboot的课程互助学习系统【附源码、mysql、文档、调试+代码讲解+全bao等】

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

作者头像 李华