Difficulty: 🟢 Easy
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.
n == gain.length
1 <= n <= 100
100 <= gain[i] <= 100
Python 3
class Solution:
def largestAltitude(self, gain: List[int]) -> int:
current = 0
largest = 0
for net_gain in gain:
current += net_gain
largest = max(largest, current)
return largest
The given solution provides a simple approach to find the highest altitude during the trip.
Here is a step-by-step overview of the solution:
- Initialize two variables:
current
andlargest
, both set to 0. These variables will keep track of the current altitude and the highest altitude reached, respectively. - Iterate through the
gain
array, which represents the net gain in altitude between consecutive points. - For each net gain in altitude, update the
current
altitude by adding the net gain. - Update the
largest
altitude if thecurrent
altitude is greater than thelargest
altitude seen so far. - Return the
largest
altitude, which is the highest altitude during the trip.
The time complexity for this solution is O(n), where n is the length of the gain
array. We iterate through the array once.
The space complexity is O(1) because we are using a constant amount of additional space to store variables.
The given solution provides a straightforward approach to find the highest altitude reached during a road trip, given the net gain in altitude between consecutive points. It maintains two variables: current
to track the current altitude and largest
to track the highest altitude seen so far. The solution runs in linear time and constant space complexity.
NB: If you want to get community points please suggest solutions in other languages as merge requests.