Python程序:查找点的最高海拔


假设有一个骑自行车的人正在进行公路旅行。在他的公路旅行中,有n个不同的点,它们位于不同的海拔高度。骑车人从海拔0的点0开始他的旅行。如果我们有一个名为gain的包含n个元素的序列,gain[i]表示所有(0 <= i < n)点i和i+1之间海拔的净增益。我们必须找到一个点的最高海拔。

因此,如果输入类似于 gain = [-4,2,6,1,-6],则输出将为 5,因为海拔为 [0,-4,-2,4,5,-1],因此最大值为 5。

为了解决这个问题,我们将遵循以下步骤 -

  • maximum := 0

  • run_alt := 0

  • 对于gain中的每个delta,执行以下操作

    • run_alt := run_alt + delta

    • maximum := maximum 和 run_alt 的最大值

  • 返回 maximum

示例(Python)

让我们看看以下实现以获得更好的理解 -

 现场演示

def solve(gain):
   maximum = 0
   run_alt = 0

   for delta in gain:
      run_alt += delta
      maximum = max(maximum, run_alt)

   return maximum

gain = [-4,2,6,1,-6]
print(solve(gain))

输入

[-4,2,6,1,-6]

输出

5

更新于: 2021年5月18日

913 次查看

开启你的 职业生涯

完成课程获得认证

开始学习
广告