给定一个二维数组mountainMap表示一座山的地图,数组中的每个元素mountainMap[x][y]代表坐标(x,y)处 山的高度。登山员从山底出发,爬到山峰。
山底的含义:mountainMap中高度为0的坐标点。
山峰的含义:mountainMap中高度最高的坐标点。
山底和山峰有且仅有一个坐标。
我们可以将山脉地图看成一个二维网格,每个格子代表一个节点,相邻(上、下、左、右)格子之间有边相连。由于每步移动代价相同(均为 1),并且我们要找从山底到山峰的最少步数,最合适的算法是 广度优先搜索(BFS)。
具体步骤如下:
start
(高度为 0 的唯一坐标)和山峰终点 target
(最高高度的唯一坐标)。start
入队,并用一个与地图同型的布尔数组 vis
记录访问状态。(x,y)
及其已走步数 d
。