面试必考精华版Leetcode1926. 迷宫中离入口最近的出口

news2024/9/21 11:20:19

题目:


代码(2023年10月26日 首刷看解析):

class Solution {
public:
    int nearestExit(vector<vector<char>>& maze, vector<int>& entrance) {
        int m = maze.size();
        int n = maze[0].size();

        vector<int> dx ={1,0,-1,0};
        vector<int> dy ={0,1,0,-1};

        queue<tuple<int,int,int>> q;
        q.emplace(entrance[0],entrance[1],0);
        maze[entrance[0]][entrance[1]] = '+';
        while(!q.empty()){
            auto [cx,cy,d] =q.front();
            q.pop();
            for(int i=0;i<4;++i){
                int nx=cx+dx[i];
                int ny=cy+dy[i];
                if(nx >= 0 && nx < m && ny >= 0 && ny < n && maze[nx][ny] == '.'){
                    if(nx==0||nx==m-1||ny==0||ny==n-1){
                        return d+1;
                    }
                    maze[nx][ny]='+';
                    q.emplace(nx,ny,d+1);
                }
            }
        }
        return -1;
    }
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1135394.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

男怕入错行!程序员千万别选错赛道

不知道有没有小伙伴和我一样&#xff0c;上大学报软件工程是奔着开发游戏去的 进去之后发现和自己想的完全不一样 不仅学的东西和游戏开发没啥关系&#xff0c;关系是导师基本是摸鱼的 而且全要靠自学&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 本人当年…

AGI超级互联启动会落幕,UCC启动城市节点,促算力普及千家万户

10月24日&#xff0c;由中关村超互联新基建产业创新联盟、中国智能计算产业联盟主办&#xff0c;互联科技、鼎好DH3联合承办的“AGI超级互联启动会&#xff08;AGI Ultra Cross Connects Kick-off Convention&#xff09;”在北京鼎好DH3圆满举行。 本次活动汇聚众多行业专家、…

遍历树形结构记录

例如: 这是递归对树形结构的遍历 findMatchingValue(json1,json2){ if(json1.defaultLabel&&json2.some(item>item.titlejson1.defaultLabel)){ //将匹配的值保存起来 this.matchedValue.push(json1.defaultLabel) } if(json1.childrens&&json1.childrens.…

【C++项目】高并发内存池第四讲 申请内存过程介绍流程介绍

申请内存过程介绍 1.主函数执行2.ThreadCache3.CentralCache4.PageCache 1.主函数执行 先从内存池申请内存 获取ThreadCache对象&#xff0c;然后去ThreadCache对象的Allocate申请&#xff01; 2.ThreadCache 这里要计算对齐函数和相应的桶的下标&#xff0c;这个之前介绍T…

JavaScript事件处理:探索DOM事件和事件监听器

目录 DOM事件简介 什么是事件&#xff1f; 事件处理程序 在HTML中添加事件处理程序 事件类型 事件对象 事件监听器 事件冒泡与事件捕获 常见的事件类型和用法 总结 在Web开发中&#xff0c;JavaScript事件处理是一个重要的概念。通过事件处理&#xff0c;我们可以对用…

【linux】倒计时小程序

倒计时小程序 第一步&#xff08;创建一个目录&#xff09;mkdir processbar&#xff1a; 进入目录cd processbar&#xff1a; 第二步&#xff08;创建一个.h文件【声明】&#xff0c;两个.c文件【实现】和【函数调用】的文件&#xff09;touch processBar.h touch processB…

谷歌计划从Chrome119起测试IP隐私保护功能

目前&#xff0c;谷歌正为Chrome浏览器测试一项新的“IP保护”功能。因为该公司认为用户IP地址一旦被黑客滥用或秘密跟踪&#xff0c;都可能导致用户隐私信息泄露。 而这项功能可通过代理服务器屏蔽用户的IP地址&#xff0c;以增强用户的隐私性&#xff0c;这样就可以尽量在确…

centos7安装mysql8.0

mysql官网地址&#xff1a;MySQL :: Download MySQL Community Server (Archived Versions) 1.上传到 /usr/local 路径下 2.解压 tar -xvf mysql-8.0.31-linux-glibc2.12-x86_64.tar.xz3.重命名 mv mysql-8.0.31-linux-glibc2.12-x86_64.tar.xz mysql 4.创建mysql用户组和用…

甘特图组件DHTMLX Gantt用例 - 如何自定义任务、月标记和网格新外观

dhtmlxGantt是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表。可满足项目管理应用程序的所有需求&#xff0c;是最完善的甘特图图表库。 本文将为大家揭示DHTMLX Gantt自定义的典型用例&#xff0c;包括自定义任务、网格的新外观等&#xff0c;来展示其功能的强大性&…

华为eNSP配置专题-策略路由的配置

文章目录 华为eNSP配置专题-策略路由的配置0、概要介绍1、前置环境1.1、宿主机1.2、eNSP模拟器 2、基本环境搭建2.1、终端构成和连接2.2、终端的基本配置 3、配置接入交换机上的VLAN4、配置核心交换机为网关和DHCP服务器5、配置核心交换机和出口路由器互通6、配置PC和出口路由器…

【详细】Java网络通信 TCP、UDP、InetAddress

一、网络程序设计基础 1.局域网与因特网 为了实现两台计算机的通信&#xff0c;必须用一个网络线路连接两台计算机&#xff08;服务器<-->网络<-->客户机&#xff09;。 服务器是指提供信息的计算机或程序&#xff0c;客户机是指请求信息的计算机或程序。网络用…

HTML,CSS实现鼠标划过头像,头像突出变大(附源码)

话不多说&#xff0c;先上代码 先看原图&#xff1a; 再看 鼠标放上去后的图&#xff1a; 是不是明显感觉到 人物头像突出了一些&#xff0c;而且还增加了阴影部分的效果呢&#xff1f; 直接上代码&#xff01;&#xff01;&#xff01; <!--由于我的 img 标签放的是循环后…

一文总结 MetaQ/RocketMQ 原理

博主介绍&#xff1a;✌全网粉丝5W&#xff0c;全栈开发工程师&#xff0c;从事多年软件开发&#xff0c;在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战&#xff0c;博主也曾写过优秀论文&#xff0c;查重率极低&#xff0c;在这方面有丰富的经验…

c语言基础:L1-058 6翻了

“666”是一种网络用语&#xff0c;大概是表示某人很厉害、我们很佩服的意思。最近又衍生出另一个数字“9”&#xff0c;意思是“6翻了”&#xff0c;实在太厉害的意思。如果你以为这就是厉害的最高境界&#xff0c;那就错啦 —— 目前的最高境界是数字“27”&#xff0c;因为这…

VDA到Excel方案介绍之自定义邮件接收主题

VDA标准是德国汽车工业协会&#xff08;Verband der Automobilindustrie&#xff0c;简称VDA&#xff09;制定的一系列汽车行业标准。这些标准包括了汽车生产、质量管理、供应链管理、环境保护、安全性能等方面的规范和指南。VDA标准通常被德国和国际上的汽车制造商采用&#x…

会声会影Corel VideoStudio2024旗舰版新功能介绍及会声会影2024这款软件怎么样?

会声会影Corel VideoStudio2024旗舰版一款功能丰富的视频编辑软件。会声会影2023简单易用&#xff0c;具有史无前例的强大功能&#xff0c;拖放式标题、转场、覆叠和滤镜&#xff0c;色彩分级、动态分屏视频和新增强的遮罩创建器&#xff0c;超越基本编辑&#xff0c;实现影院级…

使用Scala和Sttp库编写爬虫程序

以下是一个使用Scala和Sttp库编写的视频爬虫程序&#xff0c;该程序使用了proxy来获取IP。请注意&#xff0c;这个示例需要在上找到一个具体的视频链接&#xff0c;然后将其传递给crawlVideo函数。 import scala.util.{Failure, Success} import scala.concurrent.{Future, Ex…

Linux驱动调试方法(高级字符设备八)

在编写Linux驱动程序时&#xff0c;通常都使用 printk 函数打印相应的提示信息从而对驱动进行调试&#xff0c;除了printk 函数之外&#xff0c;还有其他的方式来调试驱动呢。 一、dump_stack 函数 作用:打印内核调用堆栈&#xff0c;并打印函数的调用关系。 这里以最简单的 h…

传奇黑客斯诺登,现状如何了?

曾经曝光米国棱镜计划的英雄斯诺登&#xff0c;现在怎么样了&#xff1f; 要说老米最恨的人有哪些&#xff0c;那斯诺登肯定榜上有名。斯诺登曾经是一名军人&#xff0c;退伍后在中情局负责维持网络安全&#xff0c;在得知老米的棱镜计划之后&#xff0c;出于人道主义&#xff…

面试题之JavaScript经典for循环(var let)

如果你也在面试找工作&#xff0c;那么也一定遇到过这道for循环打印结果的题&#xff0c;下面我们来探讨下 var循环 for(var i 0; i < 10; i) {setTimeout(function(){console.log(i)}); } 先把答案写出来 下面来讲一下原因&#xff1a; 划重点 ① var ②setTimeout() …