难度简单48
给定一个整数数组 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[A.length - 1]
示例 1:
输入:[2,1] 输出:false
示例 2:
输入:[3,5,5] 输出:false
示例 3:
输入:[0,3,2,1] 输出:true
class Solution:
def validMountainArray(self, A: List[int]) -> bool:
if len(A)<3:
return False
Max = max(A)
Max_index = A.index(Max)
if Max==A[-1]:
return False
if Max==A[0]:
return False
s1= A[:Max_index]
s2 = A[Max_index:]
return all(s1[i] > s1[i-1] for i in range(1,len(s1))) and all(s2[i+1] < s2[i] for i in range(len(s2)-1))
class Solution:
def validMountainArray(self, A: List[int]) -> bool:
N=len(A)
i =0;
while i+1<N and A[i]<A[i+1]:
i+=1
if i==0 or i==N-1:
return False
while i+1<N and A[i]>A[i+1]:
i+=1
return i==N-1