day-102 二进制矩阵中的最短路径

思路
BFS
解题过程
从起点依次向八个方向尝试(之后也一样),如果某个位置在矩阵内且值为0且没有访问过,将其添加到一个队列中,依次类推,直到到达出口
Code
class Solution {public int shortestPathBinaryMatrix(int[][] grid) {int ans = 1;int nn = grid.length;int vis[][] = new int[nn][nn];vis[0][0] = 1;LinkedList<int[]> q = new LinkedList<>();if (grid[0][0] == 1)return -1;q.add(new int[] { 0, 0 });while (!q.isEmpty()) {int len = q.size();for (int i = 0; i < len; i++) {int arr[] = q.poll();int x = arr[0];int y = arr[1];if (x == nn - 1 && y == nn - 1)return ans;for (int m = x - 1; m <= x + 1; m++) {for (int n = y - 1; n <= y + 1; n++) {if (0 <= m && m < nn && 0 <= n && n < nn && vis[m][n] == 0&& grid[m][n] == 0) {grid[m][n] = 1;q.offer(new int[] { m, n });}}}}ans++;}return -1;}}作者:菜卷
链接:https://leetcode.cn/problems/shortest-path-in-binary-matrix/solutions/3034582/er-jin-zhi-ju-zhen-zhong-de-zui-duan-lu-xsg22/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
相关文章:
day-102 二进制矩阵中的最短路径
思路 BFS 解题过程 从起点依次向八个方向尝试(之后也一样),如果某个位置在矩阵内且值为0且没有访问过,将其添加到一个队列中,依次类推,直到到达出口 Code class Solution {public int shortestPathBinar…...
SQL Server大批量数据插入
数据库连接及相关操作 public class DataBase {/*** 驱动*/private static final String DRIVER PropertiesUtil.getString("spring.datasource.driver-class-name");/*** 数据库地址*/private static final String URL PropertiesUtil.getString("spring.da…...
在 Ubuntu 下通过 Docker 部署 Caddy 服务器
嘿,伙伴们!今天我们来聊聊如何在 Ubuntu 系统下通过 Docker 部署 Caddy 服务器。Caddy 是一个现代的 Web 服务器,支持自动 HTTPS,简单易用,特别适合快速搭建网站。而 Docker 则是一个让你可以隔离和管理应用的神器。结…...
ZooKeeper注册中心实现
具体步骤 安装ZooKeeper(启动端口占用,2181:客户端,8080:管理端)引入客户端依赖实现注册中心接口SPI补充ZooKeeper注册中心 引入依赖 <!-- zookeeper --> <dependency><groupId>org.a…...
数仓建模:如何进行实体建模?
目录 1 如何进行实体建模? 业务建模 领域建模 逻辑建模 2 实体建模具体步骤 需求分析...
Python编程技术
设计目的 该项目框架Scrapy可以让我们平时所学的技术整合旨在帮助学习者提高Python编程技能并熟悉基本概念: 1. 学习基本概念:介绍Python的基本概念,如变量、数据类型、条件语句、循环等。 2. 掌握基本编程技巧:教授学生如何使…...
「Mac玩转仓颉内测版55」应用篇2 - 使用函数实现更复杂的计算
本篇教程基于仓颉编程语言扩展了计算器功能,支持加减乘除的基础运算,以及幂运算和开平方等高级功能。代码经过简化后,移除了对输入的复杂校验,提升了程序的可维护性和交互效率。 关键词 仓颉编程语言函数封装高级运算 一、功能说…...
map参数详解
const items new Array(15).fill(null).map((_, index) > ({key: index 1,label: nav ${index 1}, })); $.map() 函数用于使用指定函数处理数组中的每个元素(或对象的每个属性),并将处理结果封装为新的数组返回。 注意:1. 在jQuery 1.6 之前&#…...
OSI 七层模型 | TCP/IP 四层模型
注:本文为 “OSI 七层模型 | TCP/IP 四层模型” 相关文章合辑。 未整理去重。 OSI 参考模型(七层模型) BeretSEC 于 2020-04-02 15:54:37 发布 OSI 的概念 七层模型,亦称 OSI(Open System Interconnection…...
高转速风扇|无刷暴力风扇方案设计
在当今科技高速发展的时代,电子设备的性能不断提升,散热问题也日益成为关注的焦点。而 13w 高转速暴力风扇方案的出现,为解决各种设备的散热难题提供了强大的技术支持。 一、高转速暴力风扇的重要性 随着电子设备的不断升级,其功率…...
GPU 进阶笔记(三):华为 NPU/GPU 演进
大家读完觉得有意义记得关注和点赞!!! 1 术语 1.1 CPU1.2 GPU1.3 NPU / TPU1.4 小结2 华为 DaVinci 架构:一种方案覆盖所有算力场景 2.1 场景、算力需求和解决方案2.2 Ascend NPU 设计3 路线一:NPU 用在手机芯片&…...
计算机网络 (13)信道复用技术
前言 计算机网络中的信道复用技术是一种提高网络资源利用率的关键技术。它允许在一条物理信道上同时传输多个用户的信号,从而提高了信道的传输效率和带宽利用率。 一、信道复用技术的定义 信道复用(Multiplexing)就是在一条传输媒体上同时传输…...
数据库约束和查询
一 约束意义 这个后面的字段是什么意思呢? 先前说数据类型是一种约束,约束我们只能放该类型的数据,还有其它的约束来保证数据的合法性,下面的字段就和约束有关。 编译器的编译就是一个约束,保证我们的代码一定是语法合格的。我们…...
网工日记:FTP两种工作模式的区别
FTP 的主动模式和被动模式在连接建立的发起方、数据传输端口以及对网络环境的适应性等方面存在明显区别: 1. 连接发起方 主动模式:数据连接由服务器主动发起。在控制连接建立后,客户端通过 PORT 命令告知服务器自己用于接收数据的临时端口号…...
NLP模型工程化部署
文章目录 一、理论-微服务、测试与GPU1)微服务架构2)代码测试3)GPU使用 二、实践-封装微服务,编写测试用例和脚本,并观察GPU1)微服务封装(RestFul和RPC)2)测试编写(unit_test\api_test\load_tes…...
分布式版本管理工具——git 中忽略文件的版本跟踪(初级方法及高级方法)
git工具忽略指定文件的版本跟踪 一、简单方式实现二、复杂方式实现(模式匹配)1. 相关规则2. 应用案例a) 忽略所有内容b) 忽略所有目录(不忽略当前目录的具体文件)c)忽略指定目录下的所有文件,但排除某文件d)…...
【LangChain】Chapter4 - Question and Answer Over Documents
说在前面 文档问答,是常见的一类LLM应用,给定一段可能是从 PDF文件、网页或某公司内部文档库中提取的文本,使用LLM回答关于这些文档内容的问题。这样的应用非常的强大,它可以将LLM与完全没被训练的数据相结合,可以灵活…...
TCP/IP 协议演进中的瓶颈,权衡和突破
所有(去掉 “几乎” 修饰)问题都来自于生长速度的不一致,换句话说,膨胀不是均匀的,从而产生瓶颈甚至触碰极限,TCP/IP 从协议到实现面临的多方问题与动物体型不能无限大,摩天大楼不能无限高本质上一样。 如今被高性能网…...
软件测试面试八股文,查漏补缺(附文档)
大家好,最近有不少小伙伴在后台留言,准备面试了,又不知道从何下手!为了帮大家节约时间,特意准备了一份面试相关的资料,内容非常的全面,真的可以好好补一补,希望大家在都能拿到理想的…...
IDEA工具使用介绍、IDEA常用设置以及如何集成Git版本控制工具
文章目录 一、IDEA二、建立第一个 Java 程序三、IDEA 常用设置四、IDEA 集成版本控制工具(Git、GitHub)4.1 IDEA 拉 GitHub/Git 项目4.2 IDEA 上传 项目到 Git4.3 更新提交命令 一、IDEA 1、什么是IDEA? IDEA,全称为 IntelliJ ID…...
OpenClaw数据标注:Qwen3.5-9B-AWQ-4bit辅助制作AI训练数据集
OpenClaw数据标注:Qwen3.5-9B-AWQ-4bit辅助制作AI训练数据集 1. 为什么需要AI辅助数据标注 作为一个经常折腾个人机器学习项目的开发者,数据标注一直是我最头疼的环节。上周在做一个垃圾分类模型时,面对2000多张待标注的垃圾图片࿰…...
各种 32 位单片机(MCU),本质上是围绕不同 CPU 内核、由不同厂商设计的 32 位微控制器家族,最主流的是基于 ARM Cortex‑M 内核的各类兼容 / 派生系列,其次是少数自研内核架构。
一、按内核架构:两大阵营1. ARM Cortex‑M 内核(绝对主流,占 90% 以上市场)所有基于 ARM 公司授权的 Cortex‑M 系列处理器内核 的 MCU。内核谱系(从低到高):Cortex‑M0 / M0:入门、…...
Shell应用手册(一) 5 .终端连接与环境配置(SSH连接、命令行提示符含义)
对于后端开发者、运维工程师而言,终端是日常工作中最常用的工具之一。无论是远程管理服务器,还是本地调试程序,终端连接的稳定性、环境配置的合理性,直接影响工作效率。而SSH连接作为远程终端访问的核心方式,命令行提示…...
Photoshop+ComfyUI联动实战:SD-PPP插件5分钟配置指南(附常见错误排查)
PhotoshopComfyUI联动实战:SD-PPP插件5分钟配置指南(附常见错误排查) 在数字艺术创作领域,效率与创意的平衡一直是设计师们的核心诉求。当Adobe Photoshop遇上ComfyUI的AI绘画能力,SD-PPP插件就像一位技艺精湛的翻译官…...
给电机控制新手的PMSM建模避坑指南:从ABC到dq坐标变换,手把手推导电压方程
永磁同步电机建模实战:从ABC到dq坐标变换的避坑手册 刚接触永磁同步电机(PMSM)控制的工程师,往往会在坐标变换和电压方程推导的数学迷宫中迷失方向。那些看似简单的矩阵运算背后,藏着无数新手容易踩中的陷阱——等幅值与等功率变换的混淆、电…...
Unity发布京东小游戏反
从 UI 工程师到 AI 应用架构者 13 年前,我的工作是让按钮在 IE6 上对齐; 13 年后,我用 fetch-event-source 订阅大模型的“思维流”,用 OCR 解锁图片中的文字——前端,正在成为 AI 产品的第一道体验防线。 最近&#x…...
视觉问答(VQA)前沿进展:5大创新数据集与顶会论文精要解析
1. 视觉问答(VQA)技术现状与挑战 视觉问答(VQA)作为计算机视觉与自然语言处理的交叉领域,近年来发展迅猛。简单来说,VQA就是让计算机看懂图片内容后,回答人类提出的自然语言问题。比如给出一张…...
深入解析Qt平台插件xcb连接失败问题及高效解决方案
1. 为什么你的Qt程序突然罢工了? 最近在远程服务器上调试Qt程序时,你是不是也遇到过这个让人抓狂的错误提示?"qt.qpa.xcb: could not connect to display"这个报错就像一堵墙,把我们的开发工作拦在了半路。作为一个在Li…...
nlp_structbert_sentence-similarity_chinese-large部署教程:阿里云PAI-EAS一键部署全流程
nlp_structbert_sentence-similarity_chinese-large部署教程:阿里云PAI-EAS一键部署全流程 1. 工具简介 nlp_structbert_sentence-similarity_chinese-large是一个专门用于中文句子语义相似度计算的强大工具。它基于阿里达摩院开源的StructBERT大规模预训练模型&a…...
GTE-Pro语义引擎效果展示:跨年度文档语义关联(2023制度→2024执行细则)
GTE-Pro语义引擎效果展示:跨年度文档语义关联(2023制度→2024执行细则) 今天想和大家分享一个特别有意思的案例,也是我们团队最近用GTE-Pro语义引擎解决的一个实际问题。 想象一下这个场景:你是一家公司的员工&#…...
