爬山问题(百度笔试2018)

问题描述冬木市西边的园藏山是著名的旅游圣地。从空中俯瞰,园藏山可以看成一个 n * m 的矩阵,我们把行从上往下按 1 到 n 编号,把列从左往右按 1 到 m 编号,那么(i, j)就表示矩阵第 i 行第 j 列的位置。我们用ℎi,j , 表示位置(i, j)的海拔高度。初始时,Saber 在(sx, sy)这个位置,她想前往更高的地方。每一次她可以选择向上、下、左、右其中一个方向走,但不能走出...
摘要由CSDN通过智能技术生成

问题描述

冬木市西边的园藏山是著名的旅游圣地。从空中俯瞰,园藏山可以看成一个 n * m 的矩阵,我们把行从上往下按 1 到 n 编号,
把列从左往右按 1 到 m 编号,那么(i, j)就表示矩阵第 i 行第 j 列的位置。我们用ℎi,j , 表示位置(i, j)的海拔高度。

初始时,Saber 在(sx, sy)这个位置,她想前往更高的地方。每一次她可以选择向上、下、左、右其中一个方向走,但不能走出这个矩阵;同时,作为大不列颠的王,孤傲的 Saber 不愿意走到比她当前所在的位置海拔要低的位置,也就是说在移动的过程中,每一步她都只能向海拔不低于她当前所在的位置的那些位置移动。请你帮忙计算出她所能走到的最高高度。

输入格式:

第一行数据为n和m;第二行数据为当前所在的位置i,j;接下来的n行和m列为海拔矩阵

输出格式:

输出最高海拔

问题分析

第一步,当从原始点出发,分别往上、下、左、右方向走一步,然后判断当前的位置是否越界和是否是比原位置大;

第二步,如果该点为越界且比原始位置海拔高,则把该点当做新的原点,重新寻找最高海拔;直到四个方向均已达到停止条件;

第三部,从四个方向的海拔中选择一个最高的作为最高海拔。

python代码

n, m = [int(x) for x in raw_input().split()]
sx, sy =
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值