蓝桥杯2019年第十届JavaB组真题题目+解析+代码+答案:5.迷宫

您所在的位置:网站首页 有点难的迷宫及这个迷宫的答案 蓝桥杯2019年第十届JavaB组真题题目+解析+代码+答案:5.迷宫

蓝桥杯2019年第十届JavaB组真题题目+解析+代码+答案:5.迷宫

2024-07-17 07:27| 来源: 网络整理| 查看: 265

不要自卑,去提升实力 互联网行业谁技术牛谁是爹 如果文章可以带给你能量,那是最好的事!请相信自己 加油o~

在这里插入图片描述 点击下面链接 蓝桥杯历届真题题目+解析+代码+答案(2013-2020)(JavaA、B、C组)

题目描述:

下图给出了一个迷宫的平面图,其中标记为1的是障碍,0的是可以通行的地方 010000 000100 001001 110000 迷宫的入口为左上角,出口为右下角,在迷宫中,只能从一个位置走到这 个它的上、下、左、右四个方向之一。 对于上面的迷宫,从入口开始,可以按DRRURRDDDR 的顺序通过迷宫, 一共 10 步。其中 D、U、L、R 分别表示向下、向上、向左、向右走。 对于下面这个更复杂的迷宫(30 行 50 列),请找出一种通过迷宫的方式, 其使用的步数最少,在步数最少的前提下,请找出字典序最小的一个作为答案。 请注意在字典序中D 广搜的顺义要以D-L-R-U进行,因为要字典序最小 > 这点可以利用4次循环即可 > 怎么判断是最小路径呢? > 因为是广搜,要一层一层的搜 > 所以当前节点探寻了每个和它相邻的节点 > 一但到达终点即退出,最小路径为探索的层数,这点和深搜不太相同, > dfs是不断进行递归回溯,进行比较找最小值 > 而bfs可以利用自身优势确定最小值

代码:

public class Main { public static int dir[][] = new int[][] {{1,0},{0,-1},{0,1},{-1,0}}; public static char direction[] = new char[] {'D','L','R','U'}; public static int[][] map=new int[30][50]; public static boolean[][] visit=new boolean[30][50]; public static void main(String[] args){ Scanner sc=new Scanner(System.in); for(int i=0;i


【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3