class Solution {
public:
int longestMountain(vector<int>& A) {
int N = A.size();
int up[N+1];
int down[N+1];
memset(up,0,sizeof(up));
memset(down,0,sizeof(down));
for(int i=1;i<N;i++){
if(A[i] > A[i-1]) up[i] = up[i-1]+1;
}
for(int i=N-1;i>0;i--){
if(A[i-1] > A[i]) down[i-1] = down[i] + 1;
}
int ans = 0;
for(int i=0;i<N;i++){
if(up[i] != 0 && down[i] != 0){
ans = max(ans,up[i]+down[i]+1);
}
}
return ans;
}
};
No.125 - LeetCode845 - 最长山峰
最新推荐文章于 2021-05-08 20:53:34 发布
本文深入探讨了一种高效算法,用于寻找给定整数数组中最长的山脉子数组。通过双向遍历和预处理技术,该算法能够在O(N)的时间复杂度内找到满足条件的最长山脉序列,为算法爱好者和开发者提供了实用的解决方案。
625

被折叠的 条评论
为什么被折叠?



