[LeetCode] #1732 Find the Highest Altitude (Easy)
LeetCode 第 1732 題 Find the Highest Altitude,難度 Easy
用 PHP 解 LeetCode 系列,Find the Highest Altitude
,屬於 Easy
原始題目
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:
Input: gain = [-5,1,5,0,-7]
Output: 1
Explanation: The altitudes are [0,-5,-4,1,1,-6]. The highest is 1.
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 開始騎
- 每一個點代表和前一個點的海拔「差距」
- 回傳最高海拔的點
解題過程
用差異計算出當前的真實海拔存進陣列
再取出最大值,有想過把海拔全部存進陣列,再用 max
函數
但是想想這樣有點偷懶,而且用陣列儲存後用函式判斷對記憶體負擔可能比較大
最後改成用單一變數去紀錄最高海拔
class Solution {
/**
* @param Integer[] $gain
* @return Integer
*/
function largestAltitude($gain) {
$current_altitude = 0;
$max = 0;
foreach($gain as $k => $v) {
$current_altitude += $v;
if ($current_altitude > $max) {
$max = $current_altitude;
}
}
return $max;
}
}