小慕正在规划一条从项目起点到终点的最短路径。他面前有一张 m 行 n 列的网格地图(grids 二维数组),其中每个单元格的值:0 表示可通行的空地,1 表示,2 表示。小慕每一步只能移动到值为 0 或 2 的单元格,每移动一格需要 1 秒。当遇到红绿灯时,他必须等待一定时间才能通过。每个红绿灯的位置和等待时间由 light 数组给出,例如 (2,2,3) 表示坐标 (2,2) 处的红绿灯需要等待 3 秒。小慕从左上角 (0,0) 出发,要到达右下角 (m-1,n-1),请你帮他计算出所需的。
提示:带虚线的词点一下有通俗解释。
输入描述
grids二维数组,内部数据只有0,1,2 1 < m,n <= 100 lights红绿灯数组,1 < x <= m*n
输出描述
从坐标(0,0)到(m-1, n-1)坐标所需的最短时间,如果没有路径,则返回最短时间为-1
示例
示例 1
输入
[[0,1,0],[0,2,1],[0,0,0]] [[1,1,3]]
输出
4
时间限制 1000 ms · 内存限制 128 MB