Find the Highest Altitude

array

Description

There is a biker going on a road trip. The road trip consists of n + 1 points at different altitudes. The biker starts his trip on point 0 with altitude equal 0. You are given an integer array gain of length n where gain[i] is the net gain in altitude between points i and i + 1 for all (0 <= i < n). Return the highest altitude of a point.

Example 1:
Input: gain = [-5, 1, 5, 0, -7]
Output: 1
Explanation: The altitudes are [0, -5, -4, 1, 1, -6]. The highest is 1.

Example 2:
Input: gain = [-4, -3, -2, -1, 4, 3, 2]
Output: 0
Explanation: The altitudes are [0, -4, -7, -9, -10, -6, -3, -1]. The highest is 0 (the starting point).

Constraints

  • n == gain.length
  • 1 <= n <= 100
  • -100 <= gain[i] <= 100

Complexity

Show Complexity
  • Time: O(n)
  • Space: O(1)

Hints

Show Hints
Pattern
Prefix sum / Running sum
Approach
Start at altitude 0. Add each gain to current altitude. Track the maximum altitude seen (including the starting 0).
Complexity
Track running altitude and max altitude in single pass

Solutions

Show PY Solution
def solution(gain):
    highest = 0
    curr = 0
    for i in range(len(gain)):
        # alt[0] = 0
        # alt[1] = gains[1] - alt[0]
        # alt[2] = gain[2] - alt[1]
        # ...
        alt = gain[i] + curr
        highest = max(highest, alt)
        curr = alt

    return highest