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 次瀏覽

助力您的 職業

完成課程以獲得認證

立即開始
廣告