LeetCode-2020.8.20-扫雷游戏

LeetCode 扫雷游戏(深度优先搜索、广度优先搜索) 让我们一起来玩扫雷游戏! 给定一个代表游戏板的二维字符矩阵。 ‘M’ 代表一个未挖出的地雷,‘E’ 代表一个未挖出的空方块,‘B’ 代表没有相邻(上,下,左,右,和所有4个对角线)地雷的已挖出的空白方块,数字(‘1’ 到 ‘8’)表示有多少地雷与这块已挖出的方块相邻,‘X’ 则表示一个已挖出的地雷。 现在给出在所有未挖出的方块中(‘M’或者’E’)的下一个点击位置(行和列索引),根据以下规则,返回... 阅读详情

链接:LeetCode529
过程:开始看题目还以往很难,毕竟越长的题目一般越难,觉得还行,模拟+搜索,搜索dfs和bfs基本操作,然后做了,然后错了,然后再看题,再冷静思考,经历了一阵发呆后,原来不是上下左右四种状态而是上下左右加对角八种,然后就可以了。
思路:模拟+搜索
代码:

class Solution {
    char[][] board;
    int[][] dxy={
        {0,0,-1,1,-1,-1,1,1},
        {-1,1,0,0,-1,1,-1,1}
    };
    int n,m;
    public char[][] updateBoard(char[][] board, int[] click) {
        if(board==null)return board;
        this.board=board;
        n=board.length;
        m=board[0].length;
        dfs(click[0],click[1]);
        return board;
    }
    void dfs(int x,int y){
        if(board[x][y]=='M'){
            board[x][y]='X';
            return;
        }
        if(board[x][y]!='E')return;
        int hh;
        if((hh=judge(x,y))>0){
            board[x][y]=(char)(hh+'0');
            return;
        }
        board[x][y]='B';
        int nx,ny;
        for(int i=0;i<8;i++){
            nx=x+dxy[0][i];
            ny=y+dxy[1][i];
            if(nx<0||nx>=n||ny<0||ny>=m)continue;
            dfs(nx,ny);
        }
    }
    int judge(int x,int y){
        int nx,ny,cnt=0;
        for(int i=0;i<8;i++){
            nx=x+dxy[0][i];
            ny=y+dxy[1][i];
            if(nx<0||nx>=n||ny<0||ny>=m)continue;
            if(board[nx][ny]=='M')cnt++;
        }
        return cnt;
    }
}
leetcode: 529. 扫雷游戏 这里是八个方向,不是四个方向遍历,然后统计地雷的个数,如果遍历完毕后地雷数不为0,然后改变该处的位置为对应的count个数的字符,如果为0,则往八个方向。表示在所有 未挖出的 方块(‘M’ 或者 ‘E’)中的下一个点击位置(总的思想是进行遍历,从最开始点击开始,然后看其什么,然后看其。来源:力扣(LeetCode)让我们一起来玩扫雷游戏!... 阅读详情

相关推荐

51单片机+HX711电子秤Proteus仿真保姆级教程(附完整源码与避坑指南)

本文详细介绍了51单片机与HX711电子秤在Proteus仿真中的全流程实战指南,包括电路设计、核心代码实现、典型问题排查及系统集成等关键步骤。特别提供了HX711驱动程序的编写技巧和称重数据处理算法,帮助开发者快速搭建高精度电子秤仿真系统,并避免常见的设计陷阱。

weixin_30752699的博客 413

Leetcode刷题详解——扫雷游戏

题目,首先要搞懂题目的要求,也就是游戏规则,从题目所给的点击位置开始,根据游戏规则,来一次。让我们一起来玩扫雷游戏!)中的下一个点击位置(

勇气是明知不可为而为之 462

Oracle 11g RAC 节点通信故障排查与修复指南

本文详细介绍了Oracle 11g RAC集群发生节点通信故障时的系统性排查与修复方法。当出现节点异常重启时,核心问题往往源于心跳网络中断。文章提供了从快速诊断、日志分析到六层深度检查的完整指南,并给出了针对网络配置、内核参数及Oracle已知Bug等常见根因的实战解决方案,帮助DBA快速恢复集群稳定。

weixin_29246195的博客 272

LeetCode算法题5:DFS/BFS-扫雷游戏

扫雷游戏和被围绕的区域 (不太简单的DFS/BFS,当前元素的状态要依赖于下一次遍历的元素状态)

Little_ant_的博客 3895

COMSOL模拟CO2驱替CH4:多物理场耦合建模与工程应用详解

在非常规天然气开发与碳封存工程中,多孔介质内的渗流、吸附与岩石变形相互耦合,使得CO2驱替CH4的产能预测和CO2封存评估无法仅靠经验公式完成。以达西定律描述裂隙流动、以扩展Langmuir方程刻画竞争吸附、用应力-吸附-渗透率关系关联煤岩变形,是多物理场耦合数值模拟的核心路径。COMSOL Multiphysics凭借内置渗流、固体力学与组分传递接口,能够将这些机制整合为可参数化扫描的仿真模型,为注气压力、井距、渗透率演化等方案设计提供量化依据。围绕CO2驱替CH4模拟的建模流程、参数取法与结果判读,可形

weixin_29574585的博客 160

Autosar MCAL-S32k324 Crypto配置-基于EB

NXP官网提供了免费的HSE固件,同时也提供了对应的协议栈。本文以算法为例,介绍MCAL相关的配置及在代码中的集成与使用。使用HSE计算,比软件算法确实方便许多。后面会完善更多的算法测试。

赞的博客 2434

leetcode-529:扫雷游戏

给你一个整数数组 click ,其中 click = [clickr, clickc] 表示在所有 未挖出的 方块(‘M’ 或者 ‘E’)中的下一个点击位置(clickr 是行下标,clickc 是列下标)。让我们一起来玩扫雷游戏!

菊头蝙蝠的博客 1152

在 SAP S/4HANA 分析模型中添加 Measures,Calculated、Restricted、Currency Conversion 与 Unit Conversion 的建模思路

摘要: SAP S/4HANA分析查询建模中,度量(measure)的加工层级是关键难点,涉及聚合时机、币种/单位语义、过滤上下文等复杂因素。度量不仅是数字字段,还需处理计算口径(Calculated Measures)、上下文绑定(Restricted Measures)和单位转换等问题。Calculated Measures适合派生指标(如毛利率),需注意聚合前后计算差异;Restricted Measures通过固化过滤条件(如区分实际/计划金额)确保业务语义一致性。建模时应将业务逻辑下沉到分析模型层

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1022

LeetCode每日一题-扫雷游戏

题目 让我们一起来玩扫雷游戏! 给定一个代表游戏板的二维字符矩阵。 'M'代表一个未挖出的地雷,'E'代表一个未挖出的空方块,'B'代表没有相邻(上,下,左,右,和所有4个对角线)地雷的已挖出的空白方块,数字('1'到'8')表示有多少地雷与这块已挖出的方块相邻,'X'则表示一个已挖出的地雷。 如果一个地雷('M')被挖出,游戏就结束了-把它改为'X'。 如果一个没有相邻地雷的空方块('E')被挖出,修改它为('B'),并且所有和其相邻的未挖出方块都应该被递归地揭露。如果一个...

zilong00007的专栏 2414

新手必读!2025最全AI智能体入门手册,50个问题全讲透

感知(Perception):能读取环境,比如读取网页数据、识别用户输入、接入 API;思考(Reasoning/Planning):理解任务目标,规划出行动步骤;行动(Action):调工具、查资料、发消息、写入数据库……直接执行任务。有了这三步,智能体才不是“一个会说话的大模型”,而是真正的“能落地执行的工作代理人”。多个 Agent 分工协作,每个智能体负责一个角色或任务节点,像一个“虚拟团队”。一个爬数据的 Agent,一个提炼要点的 Agent,一个撰写报告的 Agent,

互联网架构师笔记 1967

基于树莓派4B设计的厨房环境监测系统_368

本项目设计并实现了一种基于树莓派4B的厨房环境监测系统,提升厨房使用过程中的安全性与智能化水平。系统采用树莓派4B作为主控核心,集成DHT11温湿度传感器、MQ2烟雾传感器、火焰传感器、光敏传感器、水滴检测传感器等多种传感器,实现对厨房环境温湿度、烟雾、火焰、光照与溢水等参数的实时监测,并通过蜂鸣器进行本地报警。系统通过WIFI连接互联网,利用MQTT协议将环境数据上传至华为云物联网平台,实现远程可视化监控。

415

LeetCode第529题:扫雷游戏

给你一个整数数组 click ,其中 click = [clickr, clickc] 表示在所有 未挖出的 方块('M' 或者 'E')中的下一个点击位置(clickr 是行下标,clickc 是列下标)。如果一个 没有相邻地雷 的空方块('E')被挖出,修改它为('B'),并且所有和其相邻的 未挖出 方块都应该被递归地揭露。如果一个 至少与一个地雷相邻 的空方块('E')被挖出,修改它为数字('1' 到 '8' ),表示相邻地雷的数量。如果一个地雷('M')被挖出,游戏就结束了- 把它改为 'X'。

qq_58418526的博客 263

【电子通识】TINA-TI怎么使用受控源向导创建受控源

TINA-TI怎么使用受控源向导创建受控源

一点硬件 357

leetcode *529. 扫雷游戏(2020.8.20)

【题目】*529. 扫雷游戏 让我们一起来玩扫雷游戏! 给定一个代表游戏板的二维字符矩阵。 ‘M’ 代表一个未挖出的地雷,‘E’ 代表一个未挖出的空方块,‘B’ 代表没有相邻(上,下,左,右,和所有4个对角线)地雷的已挖出的空白方块,数字(‘1’ 到 ‘8’)表示有多少地雷与这块已挖出的方块相邻,‘X’ 则表示一个已挖出的地雷。 现在给出在所有未挖出的方块中(‘M’或者’E’)的下一个点击位置(行和列索引),根据以下规则,返回相应位置被点击后对应的面板: 如果一个地雷(‘M’)被挖出,游戏就结束了- 把它

Sophia_fez的博客 445

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

LeetCode529 扫雷游戏

通过对扫雷游戏问题的分析和解决,我们深入理解了 BFS 算法在处理这类需要递归探索的问题中的应用。在实际编程中,遇到类似问题时,我们可以借鉴这种思路,通过合理的数据结构和算法来高效地解决问题。同时,对问题的边界条件和细节处理也至关重要,这将直接影响代码的正确性和鲁棒性。希望这篇博客能帮助你更好地掌握扫雷游戏问题的解法,以及 BFS 算法的应用技巧。

qq_64604732的博客 1326

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

java制作扫雷游戏中埋雷的难点_LeetCode 力扣官方题解 | 529.扫雷游戏

力扣 529.扫雷游戏(点击查看题目)题目描述让我们一起来玩扫雷游戏!给定一个代表游戏板的二维字符矩阵。 'M' 代表一个未挖出的地雷,'E' 代表一个未挖出的空方块,'B' 代表没有相邻(上,下,左,右,和所有4 个对角线)地雷的已挖出的空白方块,数字('1' 到 '8')表示有多少地雷与这块已挖出的方块相邻,'X' 则表示一个已挖出的地雷。现在给出在所有未挖出的方块中('M'或者'E')的下一...

weixin_30487899的博客 304

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

力扣529题:扫雷游戏

让我们一起来玩扫雷游戏!给你一个大小为 二维字符矩阵 ,表示扫雷游戏的盘面,其中:给你一个整数数组 ,其中 表示在所有 未挖出的 方块( 或者 )中的下一个点击位置( 是行下标, 是列下标)。根据以下规则,返回相应位置被点击后对应的盘面:示例 1: 输入:board = [["E","E","E","E","E"],["E","E","M","E","E"],["E","E","E","E","E"],["E","E","E","E","E"]], click = [3,0] 输出:[["B","1

SCP173SCP173的博客 1681

LeetCode 0529. 扫雷游戏

LeetCode 0529. 扫雷游戏 让我们一起来玩扫雷游戏! 给你一个大小为 m x n 二维字符矩阵 board ,表示扫雷游戏的盘面,其中: 'M' 代表一个 未挖出的 地雷, 'E' 代表一个 未挖出的 空方块, 'B' 代表没有相邻(上,下,左

<font color="Pink">Tisfy的博客</font> 949

LeetCode529:扫雷游戏

'M' 代表一个未挖出的地雷,'E' 代表一个未挖出的空方块,'B' 代表没有相邻(上,下,左,右,和所有4个对角线)地雷的已挖出的空白方块,数字('1' 到 '8')表示有多少地雷与这块已挖出的方块相邻,'X' 则表示一个已挖出的地雷。如果一个没有相邻地雷的空方块('E')被挖出,修改它为('B'),并且所有和其相邻的未挖出方块都应该被递归地揭露。如果一个至少与一个地雷相邻的空方块('E')被挖出,修改它为数字('1'到'8'),表示相邻地雷的数量。输入面板不会是游戏结束的状态(即有地雷已被挖出)。

S_t_a_r_123的博客 1005

puzzle(1011)《平面逆推》扫雷

扫雷的重要操作技巧和简单策略

nameofcsdn的博客 8827

当心,前面有地雷——C语言实现简单扫雷小游戏

1.扫雷游戏概述 对于扫雷小游戏,我相信大家一定很熟悉,都会玩,就算不会玩,也应该听说过这个游戏。 《扫雷》是一款大众类的益智小游戏,于1992年发行。游戏目标是在最短的时间内根据点击格子出现的数字找出所有非雷格子,同时避免踩雷,踩到一个雷即全盘皆输。 以windows XP自带扫雷winmine.exe为例(其它版本的扫雷游戏与之大同小异)。游戏区包括雷区、地雷计数器(位于左上角,记录剩余地雷数)和计时器

未见花闻的博客 1492

Leetcode 529. 扫雷游戏 C++

Leetcode 529. 扫雷游戏 题目 让我们一起来玩扫雷游戏! 给定一个代表游戏板的二维字符矩阵。 ‘M’ 代表一个未挖出的地雷,‘E’ 代表一个未挖出的空方块,‘B’ 代表没有相邻(上,下,左,右,和所有4个对角线)地雷的已挖出的空白方块,数字(‘1’ 到 ‘8’)表示有多少地雷与这块已挖出的方块相邻,‘X’ 则表示一个已挖出的地雷。 现在给出在所有未挖出的方块中(‘M’或者’E’)的下一个点击位置(行和列索引),根据以下规则,返回相应位置被点击后对应的面板: 如果一个地雷(‘M’)被挖出,游戏就

weixin_43750513的博客 291

java扫雷_LeetCode 力扣官方题解 | 529.扫雷游戏

力扣 529.扫雷游戏「链接」(点击查看题目)题目描述让我们一起来玩扫雷游戏!给定一个代表游戏板的二维字符矩阵。 'M' 代表一个未挖出的地雷,'E' 代表一个未挖出的空方块,'B' 代表没有相邻(上,下,左,右,和所有4 个对角线)地雷的已挖出的空白方块,数字('1' 到 '8')表示有多少地雷与这块已挖出的方块相邻,'X' 则表示一个已挖出的地雷。现在给出在所有未挖出的方块中('M'或者'E'...

weixin_39566493的博客 284

【LeetCode】529. 扫雷游戏

题目 给定一个代表游戏板的二维字符矩阵。'M'代表一个未挖出的地雷,'E'代表一个未挖出的空方块,'B'代表没有相邻(上,下,左,右,和所有4个对角线)地雷的已挖出的空白方块,数字('1' 到 '8')表示有多少地雷与这块已挖出的方块相邻,'X'则表示一个已挖出的地雷。 现在给出在所有未挖出的方块中('M'或者'E')的下一个点击位置(行和列索引),根据以下规则,返回相应位置被点击后对应的面板: 如果一个地雷('M')被挖出,游戏就结束了- 把它改为'X'。 如果一个没有相邻地雷的空方块...

jiiiiiaaaa的博客 343

LeetCode题练习与总结:扫雷游戏--529

本文详细介绍了扫雷游戏问题的解题思路和Java实现,包括时间复杂度和空间复杂度分析,涉及递归、数组操作等多个知识点,为解决类似问题提供了清晰的指导。

一直学习永不止步 1274

LeetCode | 0529. Minesweeper扫雷游戏【Medium】【Python】【DFS】

LeetCode 0529. Minesweeper扫雷游戏【Medium】【Python】【DFS】

Wonz 645
上一篇: LeetCode647-20.8.19-回文字串
下一篇: LeetCode111-20.8.21-二叉树的最小深度
RedDevill
博客等级 码龄8年 2粉丝 54原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值