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.
這題算是自己蠻快就找到解題的方法,但因為後面有個小問題,導致沒有直接正確提交,又去查了一下,不過還是挺開心,等於是我根據自己的推論來導出正確的方向。
這題剛開始會得到一個整數的陣列,裡面存放的元素代表高度的起伏,而題目要求我們需要通過這個高度的變化量,反推出真實的元素高度,最後找出最高的元素,而起始高度為 0,所以從第二個真實高度來推導:
所以我們就必須拿原陣列的元素跟持續更新的高度來作為前綴和,並用貪心算法逐次的求最大值,更新進答案的變數內: