LeetCode 1926. 迷宫中离入口最近的出口(BFS)
文章目录
- 1. 题目
- 2. 解题
1. 题目
给你一个 m x n 的迷宫矩阵 maze (下标从 0 开始),矩阵中有空格子(用 '.'
表示)和墙(用 '+'
表示)。
同时给你迷宫的入口 entrance ,用 entrance = [entrancerow, entrancecol]
表示你一开始所在格子的行和列。
每一步操作,你可以往 上,下,左 或者 右 移动一个格子。
你不能进入墙所在的格子,你也不能离开迷宫。
你的目标是找到离 entrance 最近 的出口。
出口 的含义是 maze 边界 上的 空格子。entrance 格子 不算 出口。
请你返回从 entrance 到最近出口的最短路径的 步数 ,如果不存在这样的路径,请你返回 -1 。
示例 1:
输入:maze = [["+","+",".","+"],[".",".",".","+"],["+","+","+","."]], entrance = [1,2]
输出:1
解释:总共有 3 个出口,分别位于 (1,0),(0,2) 和 (2,3) 。
一开始,你在入口格子 (1,2) 处。
- 你可以往左移动 2 步到达 (1,0) 。
- 你可以往上移动 1 步到达 (0,2) 。
从入口处没法到达 (2,3) 。
所以,最近的出口是 (0,2) ,距离为 1 步。
示例 2:
输入:maze = [["+","+","+"],[".",".","."],["+","+","+"]], entrance = [1,0]
输出:2
解释:迷宫中只有 1 个出口,在 (1,2) 处。
(1,0) 不算出口,因为它是入口格子。
初始时,你在入口与格子 (1,0) 处。
- 你可以往右移动 2 步到达 (1,2) 处。
所以,最近的出口为 (1,2) ,距离为 2 步。
示例 3:
输入:maze = [[".","+"]], entrance = [0,0]
输出:-1
解释:这个迷宫中没有出口。提示:
maze.length == m
maze[i].length == n
1 <= m, n <= 100
maze[i][j] 要么是 '.' ,要么是 '+' 。
entrance.length == 2
0 <= entrancerow < m
0 <= entrancecol < n
entrance 一定是空格子。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/nearest-exit-from-entrance-in-maze
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2. 解题
- 标准的 广度优先搜索 模板题
class Solution {public:int nearestExit(vector<vector<char>>& maze, vector<int>& entrance) {int m = maze.size(), n = maze[0].size(), step = 0;typedef pair<int,int> pii;queue<pii> q;q.push({entrance[0], entrance[1]});maze[entrance[0]][entrance[1]] = '+'; // 访问过了vector<vector<int>> dir = {{1,0},{0,1},{0,-1},{-1,0}};while(!q.empty()){int size = q.size();step++;while(size--){ int x = q.front().first;int y = q.front().second;q.pop();for(int k = 0; k < 4; ++k){int nx = x + dir[k][0];int ny = y + dir[k][1];if(nx>=0 && nx<m && ny>=0 && ny<n && maze[nx][ny]!='+') //不为墙{if(nx==0 || nx==m-1 || ny==0 || ny==n-1)return step; // 到达边界出口maze[nx][ny] = '+'; // 标记为走过了q.push({nx, ny});}}}}return -1;}
};
100 ms 29.1 MB C++
我的CSDN博客地址 https://michael.blog.csdn.net/
长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
LeetCode 1926. 迷宫中离入口最近的出口(BFS)相关推荐
- 【数据结构与算法】之深入解析“迷宫中离入口最近的出口”的求解思路与算法示例
一.题目要求 给你一个 m x n 的迷宫矩阵 maze (下标从 0 开始),矩阵中有空格子(用 '.' 表示)和墙(用 '+' 表示).同时给你迷宫的入口 entrance ,用 entrance ...
- 迷宫中离入口最近的出口问题
最近在刷力扣,遇到了这么一个问题跟大家分享一下 给你一个 m x n 的迷宫矩阵 maze (下标从 0 开始),矩阵中有空格子(用 '.' 表示)和墙(用 '+' 表示).同时给你迷宫的入口 ent ...
- LeetCode 505. 迷宫 II(BFS / Dijkstra 最短路径)
文章目录 1. 题目 2. 解题 2.1 BFS 2.2 Dijkstra 最短路径 1. 题目 由空地和墙组成的迷宫中有一个球. 球可以向上下左右四个方向滚动,但在遇到墙壁前不会停止滚动. 当球停下 ...
- LeetCode 490. 迷宫(BFS/DFS)
文章目录 1. 题目 2. 解题 2.1 BFS 2.2 DFS 1. 题目 由空地和墙组成的迷宫中有一个球. 球可以向上下左右四个方向滚动,但在遇到墙壁前不会停止滚动. 当球停下时,可以选择下一个方 ...
- ai中如何插入签名_联络中心如何在机器人和对话式AI迷宫中导航
CTI论坛(ctiforum.com)(编译/老秦):微软首席执行官萨蒂亚·纳德拉(Satya Nadella)最近表示:"我们已经在两个月内看到了两年的数字化转型."加速数字化在 ...
- 迷宫出路代码_如何在软件开发的迷宫中找到自己的出路
迷宫出路代码 by Tim Kleier 蒂姆·克莱尔(Tim Kleier) 如何在软件开发的迷宫中找到自己的出路 (How to find your way through the corn ma ...
- LeetCode.961-2N数组中N次重复的元素(N-Repeated Element in Size 2N Array)
这是悦乐书的第365次更新,第393篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第227题(顺位题号是961).在大小为2N的数组A中,存在N+1个唯一元素,并且这些元 ...
- angularjs 元素重复指定次数_[LeetCode] 442. 数组中重复的数据
[LeetCode] 442. 数组中重复的数据 题目链接: https://leetcode-cn.com/problems/find-all-duplicates-in-an-array 难度:中 ...
- 【困难】数字迷宫,找到迷宫中的单词。
[困难]数字迷宫,找到迷宫中的单词. 题目描述 输入示例 输出示例 初始代码 解题思路 解题代码 札记 本文章属于付费专栏的文章,购买该文章所隶属的专栏后,即可获得本专栏内的所有文章永久阅读权限.每一 ...
最新文章
- linux动态链接库
- 30秒Python轻松入门-目录
- 本周没有学习,估计用脑过度...
- 浏览器窗口可视区域大小相关方法
- 单点登录之ajax跨域实现
- 拼多多sdk php,学习猿地-【扩展分享】拼多多 API SDK【拼多多开放平台】
- 学生兼职工资被拖欠,如何用法律手段追回血汗钱?
- 奥克兰大学商学院计算机专业,奥克兰大学的商科专业 推荐三大专业
- 考研英语 - advanced
- 屏幕小于6英寸的手机_2019小屏手机有哪些 8款6英寸以下小屏全面屏手机推荐 (全文)...
- 【FPGA的小娱乐】tft显示屏生成信号辅助测试阵列
- 基于f2从零实现移动端可视化编辑器
- 【PDF】java使用Itext生成pdf文档--详解
- rk3128投影仪lcd显示四周显示不完整解决
- 【MySql 数据库综合练习01 】
- 软技能入门《质量》系列 -- 密切追踪
- CityMaker学习教程07 示例代码的使用CSharp
- Java并发编程-无锁CAS与Unsafe类及其并发包Atomic
- elo匹配算法c语言,ELO算法教程
- java输出abba_java - 有限状态机搜索“ABBA” - 堆栈内存溢出
热门文章
- 【Linux分享】Linux常用命令+教程分享
- 【R】语言第一课-----安装
- java 写tb级文件_三管齐下!TB 级文件的上传性能瞬间被优化 100 倍!
- android mysql 数据库文件_android mysql数据库文件
- 第一季4:Hi3518E_SDK_Vx.x.x.x的SDK目录结构
- 鼠标点击实现花瓣雨_每周实验 | 黄金雨
- 高阶篇:8.1)开模前评审及提交资料;
- xcode8注释快捷键失效问题
- 单尺度二维离散小波重构(逆变换)idwt2
- BZOJ 1452 [JSOI2009] Count