假设我们有一个整数数组A;我们必须检查它是否是有效的山峰数组。我们知道,当且仅当满足以下情况时,A才是山形数组-A的大小> = 3
在A中存在一些索引i使得-
A [0] <A [1] <... A [i-1] <A [i]
A [i]> A [i + 1]> ...> A [A.length-1]
因此,如果输入类似于[0,3,2,1],则输出将为True。
为了解决这个问题,我们将遵循以下步骤-
如果A <3,
返回False
我:= 1
当我<A的大小和A [i]> A [i-1]时,
我:=我+ 1
如果i等于1或i等于A的大小,则
返回False
当i <A的大小且A [i] <A [i-1]时,
我:=我+ 1
当我等于A的大小时返回true
让我们看下面的实现以更好地理解-
class Solution: def validMountainArray(self, A): if(len(A)<3): return False i = 1 while(i<len(A) and A[i]>A[i-1]): i+=1 if(i==1 or i==len(A)): return False while(i<len(A) and A[i]<A[i-1]): i+=1 return i==len(A) ob = Solution() print(ob.validMountainArray([0,3,2,1]))
[0,3,2,1]
输出结果
True