Python 中有效的山脉数组


假设我们有一个整数数组 A;我们必须检查它是否是一个有效山脉数组。如果且仅当 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],则输出将为真。

要解决这个问题,我们将按照以下步骤进行 −

  • 如果 A 的大小 < 3,则
    • 返回假
  • i := 1
  • 当 i < A 的大小且 A[i] > A[i-1],执行
    • i := i + 1
  • 如果 i 与 1 相同或 i 与 A 的大小 相同,则
    • 返回假
  • 当 i < A 的大小且 A[i] < A[i-1],执行
    • i := i + 1
  • 当 i 与 A 的大小 相同时,返回真

让我们看看以下实现以获得更好的理解 −

示例

 实时演示

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

更新时间:06-Jul-2020

820 次浏览

助力您的 职业

完成课程以获得认证

立即开始
广告