IOS 算法(基礎(chǔ)篇) ----- 找到最高海拔

有一個(gè)自行車手打算進(jìn)行一場(chǎng)公路騎行,這條路線總共由 n + 1 個(gè)不同海拔的點(diǎn)組成。自行車手從海拔為 0 的點(diǎn) 0 開始騎行。
給你一個(gè)長度為 n 的整數(shù)數(shù)組 gain ,其中 gain[i] 是點(diǎn) i 和點(diǎn) i + 1 的 凈海拔高度差(0 <= i < n)。請(qǐng)你返回 最高點(diǎn)的海拔 。

例子:

輸入:gain = [-5,1,5,0,-7]
輸出:1
解釋:海拔高度依次為 [0,-5,-4,1,1,-6] 。最高海拔為 1 。

輸入:gain = [-5,1,5,0,-7]
輸出:1
解釋:海拔高度依次為 [0,-5,-4,1,1,-6] 。最高海拔為 1 。

解題思路:

循環(huán)法

其實(shí)題意理解清楚, 這道題很簡(jiǎn)單

留意下 gain[i] 是點(diǎn) i 和點(diǎn) i + 1 的 凈海拔高度差

例如: 初始海拔0, 以 gain = [-5,1,5,0,-7]為例,

gain[0] = -5, 第一海拔點(diǎn): 0, 第二個(gè)海拔點(diǎn): -5; -5 - 0 = -5
gain[1] = 1, 第二海拔點(diǎn): -5, 第三個(gè)海拔點(diǎn): -4; -4 - (-5) = 1
gain[2] = 5, 第三海拔點(diǎn): -4, 第四個(gè)海拔點(diǎn): 1; 1 - (-4) = 5
gain[3] = 0, 第四海拔點(diǎn): 1, 第五個(gè)海拔點(diǎn): 1; 1 - 1 = 0
gain[4] = -7, 第五海拔點(diǎn): 1, 第六個(gè)海拔點(diǎn): -6; -6 - 1 = -7

看上面的例子我們可以看到海拔點(diǎn)的依次為 [0,-5,-4,1,1,-6], 則最高海拔為 1

代碼:

未翻譯版

    func largestAltitude(_ gain: [Int]) -> Int {

        var result = 0, temp = 0
        
        for i in gain {

            temp = temp + i
            result = max(result, temp)
        }
        
        return result

    }

翻譯版

    func largestAltitude(_ gain: [Int]) -> Int {

        // 定義最終值, temp為各個(gè)海拔點(diǎn)
        var result = 0, temp = 0
        
        // 循環(huán) 
        for i in gain {
            
            // 找到下一個(gè)海拔點(diǎn)
            temp = temp + i
            // 取海拔點(diǎn)的最大值
            result = max(result, temp)
        }
        
        // 返回最大值
        return result

    }

題目來源:力扣(LeetCode) 感謝力扣爸爸 :)

IOS 算法合集地址

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容