有效的山脉数组
xiqe opened this issue · comments
有效的山脉数组
给定一个整数数组 A,如果它是有效的山脉数组就返回 true,否则返回 false。
让我们回顾一下,如果 A 满足下述条件,那么它是一个山脉数组:
- A.length >= 3
- 在 0 < i < A.length - 1 条件下,存在 i 使得:
A[0] < A[1] < ... A[i-1] < A[i]
A[i] > A[i+1] > ... > A[B.length - 1]
示例 1:
输入:[2,1]
输出:false
示例 2:
输入:[3,5,5]
输出:false
示例 3:
输入:[0,3,2,1]
输出:true
提示:
- 0 <= A.length <= 10000
- 0 <= A[i] <= 10000
reply
var validMountainArray = function(A) {
// 如果A.length<3,返回false
if(A.length<3) return false;
// 如果A[0]不小于A[1],返回false
if(A[0]>=A[1]) return false;
// 设置山峰s
let s;
// 因为已经判断过0,1项,所以从i=1开始循环,且s不能为最后一项,所以循环到最后第二项结束。
for(let i=1;i<A.length-1;i++){
// 如果A[i]>A[i+1]且s不存在,赋值s
if(A[i]>A[i+1] && !s){
s = i
}
// 如果A[i]<=A[i+1]且s存在,返回false
if(A[i]<=A[i+1] && s<=i){
return false
}
}
// 循环结束后,判断是否存在s,如果存在返回true,如果不存在返回fasle
if(s){
return true
} else {
return false
}
};