有一個(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) 感謝力扣爸爸 :)