周末小塔准备去爬山锻炼,0 代表平地,山的高度使用 1 到 9 来表示,小塔每次爬山或下山高度只能相差 k 及 k 以内,每次只能上下左右一个方向上移动一格,小塔从左上角(0,0)位置出发。
第一行输入 m n k(空格分隔)
小塔准备在周末去爬山锻炼,山地图以二维矩阵表示,其中0
代表平地,1
到9
表示不同的山高度。小塔每次只能向上下左右四个方向移动一格,且移动到相邻位置的高度差不能超过k
。小塔从左上角的(0,0)位置出发,要求找到能够到达的最高峰的高度以及到达该峰的最短步数。如果无法到达任何山峰,则输出0 0
。
这道题可以通过广度优先搜索(BFS)来解决。具体步骤如下:
m x n
的数组visited
来记录每个位置是否已经被访问过,以及到达该位置的步数。