news 2026/4/26 8:29:48

【剑斩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/4/26 3:40:03

Scrapy 自定义命令与扩展:打造专属爬虫工具

Scrapy 作为 Python 生态中最强大的爬虫框架之一&#xff0c;其核心优势不仅在于内置的高效爬取能力&#xff0c;更在于高度的可扩展性。通过自定义命令和扩展&#xff08;Extensions&#xff09;&#xff0c;你可以摆脱框架默认功能的限制&#xff0c;打造贴合自身业务需求的专…

作者头像 李华
网站建设 2026/4/27 2:28:30

【图像加密】基于差分扩展的缩略图保持加密技术附matlab代码

✅作者简介&#xff1a;热爱数据处理、建模、算法设计的Matlab仿真开发者。&#x1f34e;更多Matlab代码及仿真咨询内容点击 &#x1f517;&#xff1a;Matlab科研工作室&#x1f34a;个人信条&#xff1a;格物致知。&#x1f525; 内容介绍在数字化浪潮的席卷下&#xff0c;数…

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

计算机的“神经网络”:三大总线及桥接器

目录 一、三大核心总线&#xff1a;数据、地址与控制总线 &#xff08;1&#xff09;数据总线&#xff08;Data Bus, DB&#xff09; &#xff08;2&#xff09;地址总线&#xff08;Address Bus, AB&#xff09; &#xff08;3&#xff09;控制总线&#xff08;Control Bu…

作者头像 李华
网站建设 2026/4/23 17:56:08

Elasticsearch近实时搜索揭秘:1秒内可查如何实现?

当你在 Kibana 中查询刚生成的日志&#xff0c;或在电商网站搜索刚上架的商品时&#xff0c;可能会好奇&#xff1a;数据写入后不到 1 秒就能搜到&#xff0c;这是如何实现的&#xff1f; 这背后就是 Elasticsearch (ES) 的“近实时”&#xff08;Near Real-Time, NRT&#xff…

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

SSM241的房屋中介出租出售系统vue

目录系统概述技术架构核心功能创新点应用价值开发技术源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;系统概述 SSM241房屋中介出租出售系统基于Vue.js前端框架与SSM&#xff08;SpringSpringMVCMyBatis&#xff09;后端架构开发&#…

作者头像 李华