Welcome to Subscribe On Youtube
Formatted question description: https://leetcode.ca/all/1732.html
1732. Find the Highest Altitude
Level
Easy
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.
Constraints:
n == gain.length
1 <= n <= 100
-100 <= gain[i] <= 100
Solution
Start from altitude 0 and calculate altitudes at all indices. Maintain the highest altitude during the process. Finally, return the highest altitude.
-
class Solution { public int largestAltitude(int[] gain) { int maxAltitude = 0; int altitude = 0; int length = gain.length; for (int i = 0; i < length; i++) { altitude += gain[i]; maxAltitude = Math.max(maxAltitude, altitude); } return maxAltitude; } } ############ class Solution { public int largestAltitude(int[] gain) { int ans = 0, h = 0; for (int v : gain) { h += v; ans = Math.max(ans, h); } return ans; } }
-
// OJ: https://leetcode.com/problems/find-the-highest-altitude/ // Time: O(N) // Space: O(1) class Solution { public: int largestAltitude(vector<int>& A) { int h = 0, ans = 0; for (int n : A) ans = max(ans, h += n); return ans; } };
-
class Solution: def largestAltitude(self, gain: List[int]) -> int: ans = h = 0 for v in gain: h += v ans = max(ans, h) return ans ############ # 1732. Find the Highest Altitude # https://leetcode.com/problems/find-the-highest-altitude/ class Solution: def largestAltitude(self, gain: List[int]): res = [0] for g in gain: res.append(res[-1] + g) return max(res)
-
func largestAltitude(gain []int) (ans int) { h := 0 for _, v := range gain { h += v if ans < h { ans = h } } return }
-
/** * @param {number[]} gain * @return {number} */ var largestAltitude = function (gain) { let ans = 0; let h = 0; for (const v of gain) { h += v; ans = Math.max(ans, h); } return ans; };
-
impl Solution { pub fn largest_altitude(gain: Vec<i32>) -> i32 { let mut ans = 0; let mut h = 0; for v in gain.iter() { h += v; ans = ans.max(h); } ans } }
-
class Solution { /** * @param Integer[] $gain * @return Integer */ function largestAltitude($gain) { $max = 0; for ($i = 0; $i < count($gain); $i++) { $tmp += $gain[$i]; if ($tmp > $max) { $max = $tmp; } } return $max; } }