AlgoMooc
你已开通华为OD训练营权益,还差最后一步——完成入营激活(兑换课程 + 加飞书 + 登记服务群),即可解锁全部课程与专属服务。去激活 →
← 返回题库

N0002. 0401-勇攀数字高峰

中等通过率 44% · 提交 84 · 通过 37
DFS回溯枚举矩阵

小慕正在探索一张数字地形图,图中每个格子代表该位置的海拔高度。他需要从全图海拔最低的点出发,一路向上攀登,最终抵达海拔最高的山峰。请你帮助小慕找出所有满足条件的登山路径。 地图保证最低海拔和最高山峰都只有一个。 路径条件如下: - 登山规则:路径上的海拔必须。 - 移动限制:可以向上下左右四个方向移动。 - 路径限制:路径必须从最低海拔出发,到达最高海拔结束。 - 访问控制:每个地点只能经过一次。 - 高度差限制:每一步攀登的高度差必须大于0,且不超过给定的最大值。

提示:带虚线的词点一下有通俗解释。

输入描述

输入一个二维数组表示的海拔图,维度为nxm(2 ≤ n, m ≤ 10) 输入一个整数,参数表示单步最大允许的高度差

输出描述

输出满足条件的登山路径的数量

示例

示例 1

输入

2 2
1 2
3 5
2

输出

1

说明:起点:最低点坐标(0,0),海拔高度1 终点:最高点坐标(1,1),海拔高度5 单步最大高度差:2 可行路径 路径1:(0,0),(1,0),(1,1)

示例 2

输入

2 2
4 3
3 2
1

输出

2

说明:起点:最低点坐标(1,1),海拔高度2 终点:最高点坐标(0,0),海拔高度4 单步最大高度差:1 可行路径: 路径1:(1,1),(0,1),(0,0) 路径2:(1,1),(1,0),(0,0)

示例 3

输入

2 2
1 3
3 4
1

输出

0

说明:起点:最低点坐标(0,0),海拔高度1 终点:最高点坐标(1,1),海拔高度4 单步最大高度差:1 可行路径:0

时间限制 1000 ms · 内存限制 128 MB

看不懂题目?点开图解
回溯示例:勇攀数字高峰 1 2 3 5 起点 终点 路径: 1→3→5 高度差: 2, 2 (均≤2) 回溯过程 尝试所有方向,不满足则回退 直到找到所有合法路径 约束条件 • 海拔严格递增 • 上下左右移动 • 每个格子只走一次 • 高度差 ≤ 最大允许值
写完代码点「提交」,将对全部测试用例判题。

向老师提问

针对「0401-勇攀数字高峰」把疑问、代码和报错填清楚,老师收到后能更快、更准地回复你。