1732. 找到最高海拔
贴个题目:
贴个示例:
解题思路:
这道题其实就是利用前缀和的思想,因为是从0海拔开始,因此我们要创建一个新的数组,长度为gainSize+1,模拟自行车手走的每一步之后的海拔高度。
贴个代码:
int largestAltitude(int* gain, int gainSize){
int arr[gainSize+1];
arr[0]=0;
int max=arr[0];//使用max记录最大海拔
for(int i=1;i<gainSize+1;i++)
{
arr[i]=arr[i-1]+gain[i-1];
max=fmax(max,arr[i]);
}
return max;
}
性能分析:
时间分析:
一次遍历数组,因此时间复杂度是:O(n),其中n为数组长度
空间分析:
新建了一个长度为gainSize+1的数组,因此空间复杂度为:O(n)