Skip to content

Latest commit

 

History

History

0844

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

题目

给定一个 $n \times m$ 的二维整数数组,用来表示一个迷宫,数组中只包含 $0$$1$,其中 $0$ 表示可以走的路,$1$ 表示不可通过的墙壁。

最初,有一个人位于左上角 $(1, 1)$ 处,已知该人每次可以向上、下、左、右任意一个方向移动一个位置。

请问,该人从左上角移动至右下角 $(n, m)$ 处,至少需要移动多少次。

数据保证 $(1, 1)$ 处和 $(n, m)$ 处的数字为 $0$,且一定至少存在一条通路。

输入格式

第一行包含两个整数 $n$$m$

接下来 $n$ 行,每行包含 $m$ 个整数($0$ 或 $1$),表示完整的二维数组迷宫。

输出格式

输出一个整数,表示从左上角移动至右下角的最少移动次数。

数据范围

$1 \le n, m \le 100$

输入样例:

5 5
0 1 0 0 0
0 1 0 1 0
0 0 0 0 0
0 1 1 1 0
0 0 0 1 0

输出样例:

8

题解

前置题目:0843

前置知识:队列

本题知识:搜索与图论-BFS

题目分析

使用bfs

// bfs 常用思路
初始化队列
入队一个元素
for 队列不空 {
	取队头元素
	{
		操作
		入队
		...
	}
}