本文主要是介绍leetcode.845数组中的最长山脉,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
没什么好说的,题目简单易懂,中心扩展法的应用。
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;
}
};
这篇关于leetcode.845数组中的最长山脉的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!