没什么好说的,题目简单易懂,中心扩展法的应用。
class Solution {
public:int longestMountain(vector<int>& A) {
long len = A.size();
if(len < 3)
return 0;
int ret = 0;
for(int i = 0; i < len; i++){
int fnt = 1, bck = 1;
for(int front = i; front + 1 < len; front++){
if(A[front + 1] < A[front]){
fnt++;
}
else break;
}
for(int back = i; back - 1 >= 0; back--){
if(A[back - 1] < A[back]){
bck++;
}
else break;
}
if(fnt > 1 && bck > 1){
ret = max(ret, fnt + bck - 1);
}
if(ret > (len / 2) && i > (len / 2 + 1)){
break;
}
}
return ret >= 3? ret : 0;
}
};
中心扩展法求最长山脉
本文介绍了一种使用中心扩展法解决寻找数组中最长‘山脉’的问题。通过双向遍历,该方法能有效地找到符合条件的最长序列。适用于算法竞赛及面试准备。

486

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



