Leet Code 75–1732. Find the Highest Altitude

Ben Pereira - Sep 13 '23 - - Dev Community

It’s an easy problem with the description being:

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.
Constraints:

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

To get to know the highest altitude you need to know at every position what’s the altitude and compare with a pointer and when is bigger you use that value, otherwise just keep looking at it.

Since the problem depends on previous altitudes (negative ones as well) you need to sum them as you go to make sure that you are on the highest as possible when comparing it:

class Solution {
    public int largestAltitude(int[] gain) {

        // create variables that will be used for the resolution of this problem
        int highestAltitude = 0;
        int sumNetGainAltitude = 0;

        for(int i=0 ; i<gain.length ; i++) {

            // add the current altitutde index into the sum net gain
            sumNetGainAltitude += gain[i];

            // this will avoid any negative values and values that are not bigger than the highest altitude
            if(sumNetGainAltitude > highestAltitude) highestAltitude = sumNetGainAltitude;
        }

        return highestAltitude;
    }
}
Enter fullscreen mode Exit fullscreen mode

Runtime: 0 ms, faster than 100.00% of Java online submissions for Find the Highest Altitude.

Memory Usage: 39.7 MB, less than 97.89% of Java online submissions for Find the Highest Altitude.


That’s it! If there is anything thing else to discuss feel free to drop a comment, if I missed anything let me know so I can update accordingly.

Until next post! :)

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .