用一个变量left来记录是否处在上山,关注头尾,如果在头部是下山或在尾部是上山都返回false,在left=true的时候为上山,当到尾部还是上山则返回false(i===A.length-1),否则如果出现下山,判断是否为开头,如果开头为下山则返回false,否则将left改为false;当处于下山的时候,如果再次出现上山则返回false,最后返回!left 出现顶点则true否则false.
function validMountainArray(A: number[]): boolean {
let left:boolean = true
if(A.length<3) return false
for(let i=1; i<A.length; i++) {
if(left) {
if(A[i-1]>A[i]){
if(i===1) return false
left = false
} else if(i===A.length-1) return false
} else if(A[i-1]<=A[i]) {
return false
}
}
return !left
};
网友评论