941. 有效的山脉数组 - 力扣(LeetCode)
简单题,就直接遍历就可以了,方法也有很多种
class Solution {
public:
bool validMountainArray(vector<int>& A) {
int n = A.size();
if(n < 3) return false;
int i = 0;
while(i < n-1 && A[i] < A[i+1]) ++i;
if(i == 0 || i == n-1) return false;
while(i < n-1 && A[i] > A[i+1]) ++i;
return i == n-1;
}
};
也可以从两边往中间走:
class Solution {
public:
bool validMountainArray(vector<int>& A) {
int n = A.size(), l = 0, r = n-1;
if(n < 3) return false;
while(l < n-2 && A[l] < A[l+1]) ++l;
while(r > 1 && A[r-1] > A[r]) --r;
return l == r;
}
};