class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums int整型vector
* @return int整型
*/
int longestmountain(vector<int>& nums) {
// write code here
int n=nums.size();
if(n<=2) return 0;
vector<int>r(n);
vector<int>l(n);
l[0]=0;
r[n-1]=0;
for(int i=1;i<n;i++){
if(nums[i]>nums[i-1]){//i号元素前面连续递增的元素个数
l[i]=l[i-1]+1;
}
}
for(int i=n-2;i>=0;i--){//i号元素后面连续递减的元素个数
if(nums[i]>nums[i+1]){
r[i]=r[i+1]+1;
}
}
int res=0;
for(int i=0;i<n;i++){
if(l[i]>0&&r[i]>0&&res<r[i]+l[i]+1){//寻找最长山脉
res=r[i]+l[i]+1;
}
}
return res;
}
};