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