付費限定

前綴和應用: 尋找旅途中的海拔最高點_Leetcode #1732 精選75題解析

更新 發佈閱讀 2 分鐘

題目敘述

假想一位自行車手正在公路旅行,旅行起始點從海拔為0的地方開始出發,給定每個紀錄點的高度位移向量陣列gain,請問整趟旅途中的海拔最高點是多少?


題目的原文敘述


測試範例

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.
每個記錄點的高度分別為​[0,-5,-4,1,1,-6]
最高高度是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,-4,-7,-9,-10,-6,-3,-1]
最高高度是0

演算法

題目的每個紀錄點的高度位移向量陣列gain,又說起始點的高度為0。

那麼,只要依序累加每個紀錄點的位移向量,就能得到每個紀錄點的海拔高度

每回合迭代的時候,動態更新當下記錄到的高度,並且維護整趟旅途的海拔高度最大值


程式碼

class Solution:
def largestAltitude(self, gain: List[int]) -> int:

# altitude of current point
cur = 0

# global record of highest altitude
highest = 0

for offset in gain:

# compute altitude for current point
cur += offset

# update global highest altitude
highest = max(highest, cur)

return highest

複雜度分析

時間複雜度:O(n)

從頭到尾掃描過每個陣列元素,所需時間為O(n)。

空間複雜度:O(1)

所使用到的都是固定尺寸的臨時變數,所佔用的記憶體空間為O(1)。


Reference:

[1] Python O(n) by linear scan [w/ Visualization]

以行動支持創作者!付費即可解鎖
本篇內容共 1088 字、2 則留言,僅發佈於Leetcode精選75題 解析+統整你目前無法檢視以下內容,可能因為尚未登入,或沒有該房間的查看權限。
留言
avatar-img
小松鼠的演算法樂園
98會員
428內容數
由有業界實戰經驗的演算法工程師, 手把手教你建立解題的框架, 一步步寫出高效、清晰易懂的解題答案。 著重在讓讀者啟發思考、理解演算法,熟悉常見的演算法模板。 深入淺出地介紹題目背後所使用的演算法意義,融會貫通演算法與資料結構的應用。 在幾個經典的題目融入一道題目的多種解法,或者同一招解不同的題目,擴展廣度,並加深印象。
2024/05/29
Leetcode 精選75題 題目與題解 熱門考點 目錄 (持續更新中) 建議從左側目錄 或者 按Ctrl+F輸入關鍵字進行搜尋
Thumbnail
2024/05/29
Leetcode 精選75題 題目與題解 熱門考點 目錄 (持續更新中) 建議從左側目錄 或者 按Ctrl+F輸入關鍵字進行搜尋
Thumbnail
2024/05/23
本篇文章介紹了區間DP及博弈論Min/Max最佳化的相關概念,以及如何應用這些概念來計算最佳策略進行取石頭遊戲的模擬。文章實際分析了演算法、實用的加速技巧和關鍵知識點。這篇文章對於想要學習區間DP的讀者來說非常有價值。
Thumbnail
2024/05/23
本篇文章介紹了區間DP及博弈論Min/Max最佳化的相關概念,以及如何應用這些概念來計算最佳策略進行取石頭遊戲的模擬。文章實際分析了演算法、實用的加速技巧和關鍵知識點。這篇文章對於想要學習區間DP的讀者來說非常有價值。
Thumbnail
2024/02/29
題目敘述 題目會給我們一個整數陣列nums,要求我們計算平衡軸心點在哪? 平衡軸心的意思就是軸心點索引左側的元素總合 = 軸心點索引右側的元素總合 例如 整數陣列nums=[1,2,2,7,2,3] 7左側的元素總合為 1 + 2 + 2 = 5 7右側的元素總合為 2 + 3 = 5
Thumbnail
2024/02/29
題目敘述 題目會給我們一個整數陣列nums,要求我們計算平衡軸心點在哪? 平衡軸心的意思就是軸心點索引左側的元素總合 = 軸心點索引右側的元素總合 例如 整數陣列nums=[1,2,2,7,2,3] 7左側的元素總合為 1 + 2 + 2 = 5 7右側的元素總合為 2 + 3 = 5
Thumbnail
看更多
你可能也想看
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
強者都一日單攻雪山主峰順道撿個雪山東峰,小弟我是弱雞,只能單攻雪山東峰。 從標高2140公尺的大水池登山口,到標高3201公尺的雪山東峰,總共5K的路程,爬升1061公尺。
Thumbnail
強者都一日單攻雪山主峰順道撿個雪山東峰,小弟我是弱雞,只能單攻雪山東峰。 從標高2140公尺的大水池登山口,到標高3201公尺的雪山東峰,總共5K的路程,爬升1061公尺。
Thumbnail
爬升450 公尺單程1.5公里,來回時間2小時 🛤️ 大關山隧道口 ▸落石崩壁 ▸ 樹林+拉繩 ▸ 稜線 ▸ 三角點 下坡的技巧 第一關-克服心裡不剎車障礙 落差大的下坡踩剎車既危險又費腿,因觸地時間長,會讓力集中在腳掌上 第二關-後腳跟著地
Thumbnail
爬升450 公尺單程1.5公里,來回時間2小時 🛤️ 大關山隧道口 ▸落石崩壁 ▸ 樹林+拉繩 ▸ 稜線 ▸ 三角點 下坡的技巧 第一關-克服心裡不剎車障礙 落差大的下坡踩剎車既危險又費腿,因觸地時間長,會讓力集中在腳掌上 第二關-後腳跟著地
Thumbnail
這天訪視的大哥,今年64歲,雖然不是我服務的個案中,年齡最高的,卻是我訪視的地點中,海拔最高的! 沒錯,我和夥伴從台中開2個多小時的車,走進雲霧繚繞、讓人心曠神怡的美麗清境山景中。
Thumbnail
這天訪視的大哥,今年64歲,雖然不是我服務的個案中,年齡最高的,卻是我訪視的地點中,海拔最高的! 沒錯,我和夥伴從台中開2個多小時的車,走進雲霧繚繞、讓人心曠神怡的美麗清境山景中。
Thumbnail
爬山,走的是路,但整理的是思路。
Thumbnail
爬山,走的是路,但整理的是思路。
Thumbnail
🛤️D1 滑雪山莊 奇萊山登山口 ▸1.4K ▸小奇萊▸2.3K ▸黑水塘山屋▸1.1K ▸成功山屋▸0.9K ▸奇萊北峰岔口▸0.9K ▸奇萊稜線山屋 主峰標高3560m百岳20 北峰是奇萊連峰中最高的山峰,山形尖銳險峭,列為「十峻」之一 從成功山屋到稜線,將近一千公尺的爬升高度是行程裡最辛苦的
Thumbnail
🛤️D1 滑雪山莊 奇萊山登山口 ▸1.4K ▸小奇萊▸2.3K ▸黑水塘山屋▸1.1K ▸成功山屋▸0.9K ▸奇萊北峰岔口▸0.9K ▸奇萊稜線山屋 主峰標高3560m百岳20 北峰是奇萊連峰中最高的山峰,山形尖銳險峭,列為「十峻」之一 從成功山屋到稜線,將近一千公尺的爬升高度是行程裡最辛苦的
Thumbnail
這趟路程我負重11公斤,對於鮮少負重的我,累的是嫑嫑的。路途很有原始氣息,總里程約26公里,爬升約1440公尺。全自理接駁車一趟是3000元左右,超值行程 想對自己體能來個挑戰的,非常推薦。若是百岳新手推薦走向陽傳統路線,又美麗又可以輕裝。
Thumbnail
這趟路程我負重11公斤,對於鮮少負重的我,累的是嫑嫑的。路途很有原始氣息,總里程約26公里,爬升約1440公尺。全自理接駁車一趟是3000元左右,超值行程 想對自己體能來個挑戰的,非常推薦。若是百岳新手推薦走向陽傳統路線,又美麗又可以輕裝。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News