可以通过计算累积的海拔高度,并在遍历过程中记录最高的海拔来解决这个问题。代码如下:
from typing import List
def largestAltitude(gain: List[int]) -> int:
altitude = 0 # 初始海拔
max_altitude = 0 # 最高海拔
for change in gain:
altitude += change # 计算当前海拔
max_altitude = max(max_altitude, altitude) # 更新最高海拔
return max_altitude
# 测试代码
if __name__ == "__main__":
test_cases = [
([-5,1,5,0,-7], 1),
([-4,-3,-2,-1,4,3,2], 0),
([1,2,3,4,5], 15),
([0,0,0,0], 0)
]
for i, (gain, expected) in enumerate(test_cases):
result = largestAltitude(gain)
print(f"Test case {i+1}: {'Pass' if result == expected else 'Fail'}")
这个函数遍历 gain
数组,计算每个点的海拔,并记录最高值,最终返回最高的海拔高度。
已经添加了测试代码,包括几个不同的测试用例来验证函数的正确性。运行后会显示测试是否通过。可以尝试添加更多测试用例来检查边界情况!