华为OD机试 - 周末爬山(Java)

这是一道华为在线开发者(OD)测试中的编程题,涉及Java语言。题目要求解决小明在给定高度差限制下爬山的问题,找到最高峰及其到达的最短步数。输入包括山的尺寸m*n和高度差最大值k,输出是最高峰的高度和最短步数。已知所有输入都是合法的,考生只需关注算法实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目描述

周末小明准备去爬山锻炼,0代表平地,山的高度使用1到9来表示,小明每次爬山或下山高度只能相差k及k以内,每次只能上下左右一个方向上移动一格,小明从左上角(0,0)位置出发

输入描述

第一行输入m n k(空格分隔)

  • 代表m*n的二维山地图,k为小明每次爬山或下山高度差的最大值,

然后接下来输入山地图,一共m行n列,均以空格分隔。取值范围:

  • 0 < m ≤ 500
  • 0< n ≤ 500
  • 0 < k < 5

输出描述

请问小明能爬到的最高峰多高,到该最高峰的最短步数,输出以空格分隔。

同高度的山峰输出较短步数。

如果没有可以爬的山峰,则高度和步数都返回0。

备注

  • 所有用例输入均为正确格式,且在取值范围内,考生不需要考虑不合法的输入格式。

用例

输入 5 4 1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清水乐园

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值