news 2026/9/15 6:50:39

【回溯】BISHI83 迷宫问题

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【回溯】BISHI83 迷宫问题


思路

求解代码

privatestaticList<int[]>path=newArrayList<>();/** * 主方法,处理输入输出并调用回溯算法 * * @param args 命令行参数 * @throws IOException 可能抛出的IO异常 */publicstaticvoidmain(String[]args)throwsIOException{// 创建输入输出缓冲流BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));PrintWriterout=newPrintWriter(newOutputStreamWriter(System.out));// 读取第一行输入,分割并转换为高度h和宽度wString[]strA=br.readLine().trim().split("\\s+");// 解析网格的高度和宽度inth=Integer.parseInt(strA[0]);intw=Integer.parseInt(strA[1]);// 创建网格数组和访问标记数组int[][]grid=newint[h][w];boolean[][]visited=newboolean[h][w];// 读取网格数据for(inti=0;i<h;i++){// 读取一行输入并分割String[]str=br.readLine().trim().split("\\s+");// 填充网格数据for(intj=0;j<w;j++){grid[i][j]=Integer.parseInt(str[j]);}}// 从起点(0,0)开始回溯backtrack(grid,h,w,0,0,visited);// 输出路径for(int[]pos:path){out.println("("+pos[0]+","+pos[1]+")");}// 刷新并关闭输出流和输入流out.flush();out.close();br.close();}/** * 使用回溯算法在网格中寻找路径 * * @return 如果找到从起点到终点的路径则返回true,否则返回false */privatestaticbooleanbacktrack(int[][]grid,inth,intw,inti,intj,boolean[][]visted){// 检查当前位置是否有效:是否在网格范围内、是否是障碍物、是否已经访问过if(i<0||i>=h||j<0||j>=w||grid[i][j]==1||visted[i][j]){returnfalse;}// 标记当前位置为已访问,并将当前位置添加到路径中visted[i][j]=true;path.add(newint[]{i,j});// 如果当前位置是终点,则返回trueif(i==h-1&&j==w-1){returntrue;}// 定义四个方向:上、下、左、右int[]dx={-1,1,0,0};int[]dy={0,0,-1,1};// 尝试向四个方向移动for(intk=0;k<4;k++){// 递归调用backtrack方法,如果找到路径则返回trueif(backtrack(grid,h,w,i+dx[k],j+dy[k],visted)){returntrue;}}// 如果四个方向都无法继续前进,则回溯:从路径中移除当前位置path.remove(path.size()-1);returnfalse;}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/5 10:33:09

大数据领域数据工程的关键流程详解

大数据领域数据工程的关键流程详解&#xff1a;从原始数据到商业价值的转化之旅 在数字化浪潮席卷全球的今天&#xff0c;数据已成为新时代的"石油"&#xff0c;而数据工程则是将这种"原油"精炼成高价值"燃料"的关键工艺。本文将系统性地剖析大数…

作者头像 李华
网站建设 2026/9/5 16:07:24

蓝牙Host BQB dongle对比介绍

目前做蓝牙Host的BQB Dongle有如下类型&#xff0c;分别有不同的类型 BR/EDR/LE - up to Core Spec v4.2 supported LE Only - up to Core Spec v5.4 supported (Laird Connectivity, part number 451-00004) Intel M88A37 Bluetooth v5.4 wireless module (BR/EDR/LE) Inte…

作者头像 李华
网站建设 2026/9/5 16:24:51

大数据时代:数据标注的5大核心技术解析

大数据时代&#xff1a;数据标注的5大核心技术解析 摘要/引言 在大数据时代&#xff0c;海量的数据如同未经雕琢的璞玉&#xff0c;蕴含着巨大的价值&#xff0c;但要将其转化为能为机器学习、人工智能所用的“智慧”&#xff0c;数据标注起着至关重要的作用。想象一下&#xf…

作者头像 李华
网站建设 2026/9/14 0:52:22

MySQL 实战入门:从“增删改查”到“高效查询”的核心指南

MySQL 实战入门&#xff1a;从“增删改查”到“高效查询”的核心指南在数据驱动的时代&#xff0c;MySQL 作为全球最流行的开源关系型数据库&#xff0c;是每一位后端开发者、数据分析师乃至全栈工程师的必修课。无论你的架构多么宏大&#xff0c;微服务多么复杂&#xff0c;最…

作者头像 李华
网站建设 2026/9/7 11:37:25

OWL 简介

OWL 简介 概述 OWL(Web Ontology Language)是一种用于构建语义网的通用语言。它旨在提供一种机制,使得不同领域、不同应用中的概念、术语和关系可以以一种标准化的方式表示和交换。OWL 的出现是为了解决传统的标记语言在处理复杂信息表示和推理时所遇到的限制。 OWL 的历…

作者头像 李华