牛牛最近完了一款名叫传送门的游戏,但是他不满足于只是通关,他希望找到每一关的最佳通关方式。 游戏是在一个N*N的网格图中进行的,图中的网格分为四种类型,0表示空地可以通过,1表示墙壁无法通过,2表示不仅可以通过,还可以在该格放置一个传送门,3表示有且仅有的唯一的固定传送门。 在游戏开始时,牛牛可以选择一块2类型的格子放置传送门并且不可以中途更改,在游戏过程中,如果到达其中一个传送门,则可以传送往另一个传送门。游戏的起点始终为左上角,终点始终为右下角,牛牛每次可以往四个方向移动,即上下左右四个方向。牛牛想知道从起点走到终点最少需要走几步(使用传送门也算作一步)。 返回:最少的需要走的步数。
示例1

输入

6,[[0,0,3,0,0,0],[0,0,0,2,2,0],[1,1,1,2,1,0],[2,1,0,0,0,0],[0,0,0,0,0,1],[0,1,1,1,0,0]]

输出

8

备注:
保证地图中有且仅有一个标为3的格子,不保证一定有标为2的格子。无论是否放置传送门,标为3的格子和标为2的格子都可以正常通过。保证一定存在可行方案。样例的直观图为:0 0 3 0 0 00 0 0 2 2 01 1 1 2 1 02 1 0 0 0 00 0 0 0 0 10 1 1 1 0 0
加载中...