941. Valid Mountain Array(easy)
Given an array
A
of integers, returntrue
if and only if it is a valid mountain array.Recall that A is a mountain array if and only if:
A.length >= 3
- There exists some
i
with0 < i < A.length - 1
such that:
A[0] < A[1] < ... A[i-1] < A[i]
A[i] > A[i+1] > ... > A[B.length - 1]
Example 1:
Input: [2,1] Output: falseExample 2:
Input: [3,5,5] Output: falseExample 3:
Input: [0,3,2,1] Output: true
1 straightforward but awkard
按照定义先找最大值的位置maxidx,maxidx如果=0或len-1,说明在首尾位置,则A为单调减/增,return False
否则把A分为maxidx的左右判断是否单调增或减
class Solution:
def validMountainArray(self, A):
"""
:type A: List[int]
:rtype: bool
"""
if len(A) < 3: return False
maxidx = A.index(max(A))
if (maxidx == 0) or (maxidx == len(A) - 1): return False
for i in range(0,maxidx):
if (A[i+1] <= A[i]):return False
for i in range(maxidx+1,len(A)):
if A[i] >= A[i-1]:return False
return True