当前位置: 首页 > news >正文

【蓝桥杯】走迷宫

题目:

解题思路:

        简单的广度优先算法(BFS)

BFS 的特性

  1. 按层次遍历:BFS 按照节点的距离(边的数量)来逐层访问节点。
  2. 保证最短路径:对于无权图(所有边权重相同),BFS 能够找到从起点到任何其他节点的最短路径。
  3. 避免回路:通过使用已访问标记(visited 数组),可以防止重复访问同一个节点,从而避免无限循环。
  4. 队列结构:使用队列来管理待访问的节点。
import java.util.Scanner;
import java.util.Queue;
import java.util.ArrayDeque;
// 1:无需package
// 2: 类名必须Main, 不可修改public class Main {//方向static int[] dx = {0, 0, -1, 1};static int[] dy = {1, -1, 0, 0};//标记是否走过static boolean[][] visted;//矩阵大小static int N, M;//入口、出口位置static int startx, starty, endx, endy; public static void main(String[] args) {Scanner scan = new Scanner(System.in);//在此输入您的代码...N = scan.nextInt();M = scan.nextInt();int [][] arr = new int[N][M];visted = new boolean[N][M];for (int i = 0; i < N; i++) {for (int j = 0; j < M; j++) {arr[i][j] = scan.nextInt(); }}startx = scan.nextInt();starty = scan.nextInt();endx = scan.nextInt();endy = scan.nextInt();System.out.println(bfs(arr, startx - 1, starty - 1));scan.close();}public static int bfs(int[][] arr, int x, int y) {//创建队列,更新位置Queue<int[]> q = new ArrayDeque<>();q.offer(new int[] {x, y, 0});while(!q.isEmpty()) {int[] poll = q.poll();int x1 = poll[0];int y1 = poll[1];int steps = poll[2];//判断是否到达终点if (x1 == endx-1 && y1 == endy-1) {return steps;}//根据四个方向走下一步for (int i = 0; i < 4; i++) {int xx = x1 + dx[i];int yy = y1 + dy[i];if (xx >=0 && yy >= 0 && xx < N && yy < M && !visted[xx][yy] && arr[xx][yy] == 1) {visted[xx][yy] = true;q.offer(new int[] {xx, yy, steps + 1});}}}return -1;}
}

相关文章:

【蓝桥杯】走迷宫

题目&#xff1a; 解题思路&#xff1a; 简单的广度优先算法&#xff08;BFS&#xff09; BFS 的特性 按层次遍历&#xff1a;BFS 按照节点的距离&#xff08;边的数量&#xff09;来逐层访问节点。保证最短路径&#xff1a;对于无权图&#xff08;所有边权重相同&#xff0…...

【pyqt】(三)designer

designer ui设计 在学习后续的代码之前&#xff0c;我们可以先学习一下designer这款工具&#xff0c;在安装软件的时候我们有提到过&#xff0c;其具体位置在虚拟环境根目录下的\Lib\site-packages\PySide6文件夹中。对于新手而言&#xff0c;使用这种可视化的工具可以帮助我们…...

【Go学习】-01-3-函数 结构体 接口 IO

【Go学习】-01-3-函数 结构体 接口 IO 1 函数1.1 函数概述1.1.1 函数做为参数1.1.2 函数返回值 1.2 参数1.3 匿名函数1.4 闭包1.5 延迟调用1.6 异常处理 2 结构体2.1 实例化2.2 匿名结构体2.3 匿名字段 3 类方法3.1 接收器3.2 类方法练习&#xff1a;二维矢量模拟玩家移动3.3 给…...

昆仑万维大数据面试题及参考答案

请介绍一下 Flume 组件。 Flume 是一个分布式、可靠、高可用的海量日志采集、聚合和传输的系统。 从架构层面来看,它主要包含以下几个关键部分。首先是 Source,它是数据的收集端,能够接收多种不同来源的数据。比如,它可以从各种服务器的日志文件中读取数据,像 Web 服务器产…...

20250103在Ubuntu20.04.5的Android Studio 2024.2.1.12中跑通Hello World

20250103在Ubuntu20.04.5的Android Studio 2024.2.1.12中跑通Hello World 2025/1/3 14:06 百度&#xff1a;android studio helloworld android studio hello world kotlin helloword kotlin 串口 no run configurations added android studio no run configurations added 1、…...

Hack The Box-Starting Point系列Three

答案 How many TCP ports are open?&#xff08;靶机开了几个TCP端口&#xff09; 2What is the domain of the email address provided in the “Contact” section of the website?&#xff08;网站的“CONTACT”部分提供的电子邮件地址的域是什么&#xff1f;&#xff09…...

【Python其他生成随机字符串的方法】

在Python中&#xff0c;除了之前提到的方法外&#xff0c;确实还存在其他几种生成随机字符串的途径。以下是对这些方法的详细归纳&#xff1a; 方法一&#xff1a;使用random.randint结合ASCII码生成 你可以利用random.randint函数生成指定范围内的随机整数&#xff0c;这些整…...

redis7基础篇2 redis的主从模式1

目录 一 主从模式 1.1 主从复制的作用 1.2 配置常用命令 1.3 主从复制常见问题 1.4 主从复制的缺点 1.5 redis主从复制原理 二 redis主从复制的搭建流程 2.1 注意事项 2.2 redis的主从复制架构图 2.3 以6379.conf配置文件配置为例 2.4 以6380.conf配置文件配置为例 …...

Springboot - Web

Spring Boot 是一个用于简化 Spring 应用程序配置和部署的框架。它提供了一种快速开发的方式&#xff0c;通过默认配置、自动化配置等特性&#xff0c;使得开发者能够更快捷地构建和部署基于 Spring 的应用。 Spring Boot Web 是 Spring Boot 的一个子模块&#xff0c;它专注于…...

【C】​动态内存管理

所谓动态内存管理&#xff0c;就是使得内存可以动态开辟&#xff0c;想使用的时候就开辟空间&#xff0c;使用完之后可以销毁&#xff0c;将内存的使用权还给操作系统&#xff0c;那么动态开辟内存有什么用呢&#xff1f; 假设有这么一种情况&#xff0c;你在一家公司中工作&am…...

lec5-传输层原理与技术

lec5-传输层原理与技术 1. 传输层概述 1.1. 关键职责 flow control&#xff0c;流量控制reliability&#xff0c;可靠性 1.2. TCP与UDP对比 面向连接 / 不能连接对数据校验 / 不校验数据丢失重传 / 不会重传有确认机制 / 没有确认滑动窗口流量控制 / 不会流量控制 1.3. 关…...

【C语言】_指针运算

目录 1. 指针-整数 2. 指针-指针 2.1 指针-指针含义 2.2 指针-指针运算应用&#xff1a;实现my_strlen函数 3. 指针的关系运算&#xff08;大小比较&#xff09; 1. 指针-整数 联系关于指针变量类型关于指针类型和指针-整数相关知识&#xff1a; 原文链接如下&#xff1…...

“AI智慧教学系统:开启个性化教育新时代

大家好&#xff0c;我是老王&#xff0c;一个在产品圈摸爬滚打多年的资深产品经理。今天&#xff0c;我想和大家聊聊一个最近特别火的概念——AI智慧教学系统。这东西听起来好像很高大上&#xff0c;但其实和我们每个人都息息相关&#xff0c;因为它关系到我们下一代的教育。 一…...

商用车自动驾驶,迎来大规模量产「临界点」?

商用车自动驾驶&#xff0c;正迎来新的行业拐点。 今年初&#xff0c;交通部公开发布AEB系统运营车辆标配征求意见稿&#xff0c;首次将法规限制条件全面放开&#xff0c;有望推动商用车AEB全面标配&#xff0c;为开放场景的商用车智能驾驶市场加了一把火。 另外&#xff0c;…...

CSS 学习之正确看待 CSS 世界里的 margin 合并

一、什么是 margin 合并 块级元素的上外边距(margin-top)与下外边距(margin-bottom)有时会合并为单个外边距&#xff0c;这样的现象称为“margin 合并”。从此定义上&#xff0c;我们可以捕获两点重要的信息。 块级元素&#xff0c;但不包括浮动和绝对定位元素&#xff0c;尽…...

杰发科技——使用ATCLinkTool解除读保护

0. 原因 在jlink供电电压不稳定的情况下&#xff0c;概率性出现读保护问题&#xff0c;量产时候可以通过离线烧录工具避免。代码中开了读保护&#xff0c;但是没有通过can/uart/lin/gpio控制等方式进行关闭&#xff0c;导致无法关闭读保护。杰发所有芯片都可以用本方式解除读保…...

uni-app深度解码:跨平台APP开发的核心引擎与创新实践

在当今数字化浪潮中&#xff0c;移动应用市场呈现出爆炸式增长。为了满足不同用户群体在不同操作系统上的需求&#xff0c;跨平台 APP 开发成为众多开发者的首选策略。uni-app 作为一款领先的跨平台开发框架&#xff0c;以其独特的优势和创新的实践在众多同类产品中脱颖而出。它…...

unity团结云下载项目

今天开plastic scm发现它云服务好像停了哈&#xff0c;在hub里下载云端项目也不会出现在项目列表里&#xff0c;之前也有发邮件说让提前迁移到团结云。打开云仓库会弹这个&#xff0c;大概就是plastic scm无法解析域名地址吧 研究了一下团结云咋使&#xff0c;官方手册看半天也…...

Jmeter进阶篇(31)解决java.net.BindException: Address already in use: connect报错

📚前言 近期雪雪妹妹在使用Jmeter执行压测的时候,发现了一个非常让她头疼的问题,她使用20并发跑,正确率可以达到100%,但是一旦使用200并发,就会出现大量的报错,报错内容如下: java.net.BindException: Address already in use: connectat java.net.DualStackPlainSo…...

商米电子秤服务插件

概述 SunmiScaleUTS封装商米电子秤服务模块&#xff0c;支持商米旗下S2, S2CC, S2L CC等设备&#xff0c;设备应用于超市、菜市场、水果店等,用于测量商品的重量,帮助实现快捷、准确、公正的交易等一系列商业场景。 功能说明 SDK插件下载 一. 电子秤参数 型号:S2, S2CC, …...

Claude in Excel:原生集成的AI表格协作者

1. 项目概述&#xff1a;这不是插件&#xff0c;是Excel里长出来的AI同事“Claude in Excel”这个标题刚看到时&#xff0c;我下意识点开几个技术社区翻了一圈&#xff0c;发现多数人第一反应是&#xff1a;“又一个AI插件&#xff1f;”——其实完全不是。它根本没走传统Offic…...

Taurus多执行器对比实战:JMeter/Gatling/Locust统一压测方案

1. 为什么选Taurus做多执行器对比——不是为了炫技&#xff0c;而是为了少踩坑在性能测试领域&#xff0c;我见过太多团队卡在“选型”这一步&#xff1a;刚招来一个会写JMeter脚本的工程师&#xff0c;项目突然要压测WebSocket接口&#xff0c;发现JMeter原生支持弱、插件维护…...

神经网络与深度学习 第3周课程总结

深度学习视觉应用课程总结 一、常用计算机视觉数据集数据集名称发布方/年份规模图像规格类别数主要用途核心特点MNIST美国国家标准与技术研究院60k训练10k测试2828灰度图10类(0-9手写数字)入门级图像分类最经典的手写数字识别基准数据集Fashion-MNISTZalando(2017)60k训练10k测…...

告别SVN恐惧症:美术策划也能轻松上手的Unity PlasticSCM极简入门(附团队项目拉取实战)

告别SVN恐惧症&#xff1a;美术策划也能轻松上手的Unity PlasticSCM极简入门&#xff08;附团队项目拉取实战&#xff09; 在游戏开发团队中&#xff0c;版本控制系统是协作的基石&#xff0c;但传统工具如SVN往往让非技术成员望而生畏。当美术资源频繁更新、策划案不断迭代时&…...

NanaZip:现代Windows文件压缩问题的终极解决方案

NanaZip&#xff1a;现代Windows文件压缩问题的终极解决方案 【免费下载链接】NanaZip The 7-Zip derivative intended for the modern Windows experience 项目地址: https://gitcode.com/gh_mirrors/na/NanaZip 还在为Windows文件压缩工具界面老旧、功能单一而烦恼吗&…...

通用物联网开发板设计:基于ESP8266的硬件集成与开发实践

1. 项目概述&#xff1a;为什么我们需要一块“通用”的物联网开发板&#xff1f;在捣鼓了几年物联网项目之后&#xff0c;我发现自己桌面上堆满了各种开发板&#xff1a;ESP8266、ESP32、Arduino Uno、STM32 Nucleo……每个项目都要重新连线、配置电源、焊接传感器接口&#xf…...

PrivacyGuard实战:基于实证差分隐私的机器学习模型隐私审计框架

1. 项目概述与核心价值在过去的几年里&#xff0c;我亲眼见证了机器学习模型从实验室走向银行、医疗、社交网络等各个敏感领域的全过程。模型性能的每一次飞跃都令人兴奋&#xff0c;但随之而来的隐私泄露事件也一次次为我们敲响警钟。一个在医疗数据上训练出的诊断模型&#x…...

别再盲调temperature=0.2!DeepSeek补全效果突变的4个隐藏参数,资深架构师压箱底调参清单

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;别再盲调temperature0.2&#xff01;DeepSeek补全效果突变的4个隐藏参数&#xff0c;资深架构师压箱底调参清单 DeepSeek-R1/VL 等开源大模型在实际部署中&#xff0c;仅靠调节 temperature 往往收效甚…...

【国家级攻防演练级建议】:DeepSeek私有化部署中4类隐蔽后门植入路径与实时检测方案

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;DeepSeek私有化部署中隐蔽后门植入的攻防对抗本质 在私有化场景下&#xff0c;DeepSeek模型的部署链路常跨越镜像构建、权重加载、推理服务启动及API网关接入等多个环节。攻击者可利用构建上下文污染、依赖包劫…...

在多模型聚合场景下利用Taotoken实现API调用的自动降级与容灾

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 在多模型聚合场景下利用Taotoken实现API调用的自动降级与容灾 对于依赖大模型API的生产系统而言&#xff0c;服务的连续性与稳定性…...