方法一:
暴力求解:
线性扫描:
class Solution {
public:
bool validMountainArray(vector<int>& A) {
int l=A.size();
int i=0;
while(i+1<l&&A[i]<A[i+1]){
i++;
}
if(i==0||i==l-1){
return false;
}
while(i+1<l&&A[i]>A[i+1]){
i++;
}
return i==l-1;
}
};
方法二:
双指针:
class Solution {
public:
bool validMountainArray(vector<int>& A) {
int l=A.size();
int i=0,j=l-1;
for(;i<l-1&&A[i]<A[i+1];i++);
for(;j>0&&A[j]<A[j-1];j--);
if(i==j&&i!=0&&j!=l-1){
return true;
}
return false;
}
};