其他分享
首页 > 其他分享> > 迷宫

迷宫

作者:互联网

题目描述

Time Limit: 1000 ms
Memory Limit: 256 mb

小 A 同学现在被困在了一个迷宫里面,他很想从迷宫中走出来,他可以 向上、向下、向左、向右移动、每移动一格都需要花费 1 秒的时间,不能够走到 边界之外。假设小 A 现在的位置在 S,迷宫的出口在 E,迷宫可能有多个出口。 问小 A 想要走到迷宫出口最少需要花费多少秒?

输入输出格式
输入描述:
有多组测试数据。
第一行输入两个正整数 H(0 < H <= 100)和 W(0 < W <= 100),分别表示迷
宫的高和宽。
接下来 H 行,每行 W 个字符(其中‘*’表示路,‘#’表示墙,‘S’表示小 A
的位置,‘E’表示迷宫出口)。
当 H 与 W 都等于 0 时程序结束。
输出描述:
输出小 A 走到迷宫出口最少需要花费多少秒,如果永远无法走到出口则输出“-1”。
输入输出样例
输入样例#:
3 3
S*#
**#
#*E
0 0
输出样例#:
4
算法分析
1.定义一个队列
2.然后把起点加入队列
3.然后把起点标记为1,代表起点已经占用了不能再回去了
4.遍历这个队列,当队列为空才结束这个while循环
  每次都拿队首的元素,判断这个元素是否为终点‘#’,是的话就找到了break,没找到转5
  5.遍历一个for循环,用来走上下左右四个方向一步
    如这下一个点满足是‘*’或‘E’并且值等于0时,把这个点压入队列,并把这个点记为1

标签:输出,队列,迷宫,样例,出口,Limit
来源: https://www.cnblogs.com/suehoo/p/14612110.html