news 2026/8/6 12:27:25

【剑斩OFFER】算法的暴力美学——力扣 1926 题:迷宫中离入口最近的出口

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【剑斩OFFER】算法的暴力美学——力扣 1926 题:迷宫中离入口最近的出口

一、题目描述

二、算法原理

思路:BFS 算法

我们看到上面这张图片,求 A 到 E 的最短路径,此时我们可以使用一个队列来实现层序遍历来实现 BFS 算法,我们先把 A 入队列,假设两点之间的距离都为 1,所以此时队列情况:

A -> B -> C

此时因为 B 下一个就是 E 了,所以:

A -> B -> C-> E,那么 D 就没有必要入队列了,因为 E 已经找到了,那么最短路径的长度就是

剥离的次数:

这道题目和这个示例的解法一样,只不过我们要创建一个和原二维数组的一样大小的数组用来标记哪些值被遍历的,不要重复遍历;

三、代码实现

class Solution { int dx[4] = {1,-1,0,0}; int dy[4] = {0,0,1,-1}; bool tmp[200][200]; typedef pair<int,int> PII; public: int nearestExit(vector<vector<char>>& maze, vector<int>& enter) { int x = enter[0], y = enter[1]; queue<PII> que;//使用层序遍历 que.push({x,y}); tmp[x][y] = true; int count = 0; while(que.size()) { int forl = que.size(); count++;//最短的剥离次数就是最短路径 while(forl--)//控制剥离的层数 { auto [a,b] = que.front(); que.pop(); for(int i = 0; i < 4; i++) { x = a + dx[i]; y = b + dy[i]; if(x >= 0 && x < maze.size() && y >= 0 && y < maze[0].size() && maze[x][y] == '.' && tmp[x][y] == false) { if(x == maze.size() - 1 || x == 0)//到达出口 { return count; } else if(y == maze[0].size() - 1 || y == 0)//到达出口 { return count; } else { tmp[x][y] = true; que.push({x,y}); } } } } } return -1; } };
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/3 4:31:21

存储器系统中的非对齐传输

存储器系统中的非对齐传输 存储器系统中的非对齐传输是计算机体系结构和底层编程中的一个概念。 核心定义 非对齐传输指的是CPU或DMA控制器尝试访问一个未在自然边界上对齐的内存地址。 自然边界通常是由所访问数据的大小决定的&#xff1a; 访问1字节&#xff08;8位&#xff…

作者头像 李华
网站建设 2026/7/29 19:05:30

【无人机追踪】基于Dubin和候选集的无人机UAV集群协同攻击目标的Matlab仿真程序,围绕无人机的目标搜索、冲突避免、联盟组建和任务执行展开考虑时间与能耗

✅作者简介&#xff1a;热爱数据处理、建模、算法设计的Matlab仿真开发者。&#x1f34e;更多Matlab代码及仿真咨询内容点击 &#x1f517;&#xff1a;Matlab科研工作室&#x1f34a;个人信条&#xff1a;格物致知,完整Matlab代码获取及仿真咨询内容私信。&#x1f447; 关注我…

作者头像 李华
网站建设 2026/7/29 19:05:21

Scrapy 爬虫监控:结合 Prometheus+Grafana 实践

在大规模爬虫集群运维场景中&#xff0c;实时监控爬虫的运行状态、请求成功率、数据抓取量等核心指标&#xff0c;是保障业务稳定性和数据质量的关键。Scrapy 作为 Python 生态中最流行的爬虫框架&#xff0c;本身提供了基础的日志输出功能&#xff0c;但缺乏可视化的监控面板和…

作者头像 李华
网站建设 2026/8/6 1:55:50

人群仿真软件:Legion_(4).Legion用户界面介绍

Legion用户界面介绍 1. 用户界面概述 Legion是一款专业的人群仿真软件&#xff0c;用户界面设计简洁、直观&#xff0c;旨在为用户提供高效、易用的仿真环境。本节将详细介绍Legion用户界面的主要组成部分及其功能&#xff0c;帮助用户快速上手并进行人群仿真。 1.1 主窗口 主窗…

作者头像 李华
网站建设 2026/8/3 18:24:10

2个方法设置打开密码,保护Excel安全性!

Excel文件通常保存着重要的数据内容&#xff0c;有些数据需要保护&#xff0c;打开密码可以在打开文件时输入密码查看文件内容&#xff0c;这样就可以保护文件内容不被任何人查看了&#xff0c;今天分享excel打开密码的两种设置方法给大家。 方法一&#xff1a;保护工作簿 点…

作者头像 李华
网站建设 2026/7/28 11:39:42

动态SQL(七)sql标签

sql标签 可以将常用的sql片段进行记录 需要用的时候直接引入即可 设置sql片段引用sql片段测试

作者头像 李华