题目
https://leetcode.cn/problems/find-the-highest-altitude/description/?envType=study-plan-v2&envId=leetcode-75
思路
这条路线总共由 n + 1 个不同海拔的点组成,自行车手从海拔为 0 的点 0 开始骑行。
假设h[i]
表示第i
个点的海拔
h[0] = 0
h[1] - h[0].= gain[0]
h[2] - h[1] = gain[1]
…
h[n] - h[n-1] = gain[n-1]
所以要求h[i]
h[i] = h[0] + gain[0] + gain[1] + … gain[i - 1]
题目就是要求h[i]的最大值
依次每次加上gain[i],就得到一个h[i+1],代码中就是sum
,然后用mx
变量取最大值
代码
class Solution {
public:
int largestAltitude(vector<int>& gain) {
int sum = 0;
int mx = 0;
for (int x : gain) {
sum += x;
mx = std::max(mx, sum);
}
return mx;
}
};