Byte Ebi's Logo

Byte Ebi 🍤

每天一小口,蝦米變鯨魚

[LeetCode] #1732 Find the Highest Altitude (Easy)

LeetCode 第 1732 題 Find the Highest Altitude,難度 Easy

Ray

用 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.

題目分析

  1. 輸入一個陣列,代表一個自行車手的海拔變化。從 0 開始騎
  2. 每一個點代表和前一個點的海拔「差距」
  3. 回傳最高海拔的點

解題過程

用差異計算出當前的真實海拔存進陣列
再取出最大值,有想過把海拔全部存進陣列,再用 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;
    }
}

結果

result

最新文章

Category

Tag