Python中的有效Mountain Array

假设我们有一个整数数组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