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 &lt;= i &lt; n). Return the highest altitude of a point.

&nbsp;
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.


&nbsp;
Constraints:


	n == gain.length
	1 &lt;= n &lt;= 100
	-100 &lt;= gain[i] &lt;= 100


class Solution:
    def largestAltitude(self, gain: List[int]) -> int:
        return max(accumulate([0]+gain))
class Solution {
    public int largestAltitude(int[] gain) {
         int max_alt=0;
        int curr_alt=0;
        for(int i=0;i<gain.length;i++){
            curr_alt+=gain[i];
            max_alt=Math.max(curr_alt, max_alt);
        }
        return max_alt;
    }
}

//TC: O(n), SC: O(1)
class Solution {
public:
    int largestAltitude(vector<int>& gain) {
        int maxAltitude = 0;
        int currentAltitude = 0;
        
        for (int i = 0; i < gain.size(); i++) {
            currentAltitude += gain[i];
            maxAltitude = max(maxAltitude, currentAltitude);
        }
        
        return maxAltitude;
    }
};
var largestAltitude = function(gain) {
    let points = [0]
    let highest = 0

    for (let i = 0; i < gain.length; i++) {
        let point = points[i] + gain[i]
        points.push(point)
        if (point > highest) highest = point
    }

    return highest
};
Find the Highest Altitude