Leet Code 75–1732. Find the Highest Altitude

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:

<span>class</span> <span>Solution</span> <span>{</span>
<span>public</span> <span>int</span> <span>largestAltitude</span><span>(</span><span>int</span><span>[]</span> <span>gain</span><span>)</span> <span>{</span>
<span>// create variables that will be used for the resolution of this problem</span>
<span>int</span> <span>highestAltitude</span> <span>=</span> <span>0</span><span>;</span>
<span>int</span> <span>sumNetGainAltitude</span> <span>=</span> <span>0</span><span>;</span>
<span>for</span><span>(</span><span>int</span> <span>i</span><span>=</span><span>0</span> <span>;</span> <span>i</span><span><</span><span>gain</span><span>.</span><span>length</span> <span>;</span> <span>i</span><span>++)</span> <span>{</span>
<span>// add the current altitutde index into the sum net gain</span>
<span>sumNetGainAltitude</span> <span>+=</span> <span>gain</span><span>[</span><span>i</span><span>];</span>
<span>// this will avoid any negative values and values that are not bigger than the highest altitude</span>
<span>if</span><span>(</span><span>sumNetGainAltitude</span> <span>></span> <span>highestAltitude</span><span>)</span> <span>highestAltitude</span> <span>=</span> <span>sumNetGainAltitude</span><span>;</span>
<span>}</span>
<span>return</span> <span>highestAltitude</span><span>;</span>
<span>}</span>
<span>}</span>
<span>class</span> <span>Solution</span> <span>{</span>
    <span>public</span> <span>int</span> <span>largestAltitude</span><span>(</span><span>int</span><span>[]</span> <span>gain</span><span>)</span> <span>{</span>

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

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

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

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

        <span>return</span> <span>highestAltitude</span><span>;</span>
    <span>}</span>
<span>}</span>
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! 🙂

原文链接:Leet Code 75–1732. Find the Highest Altitude

© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享
It doesn't matter how slow you are, as long as you're determined to get there, you'll get there.
不管你有多慢,都不要紧,只要你有决心,你最终都会到达想去的地方
评论 抢沙发

请登录后发表评论

    暂无评论内容