在 Python 中查詢陣列中的一個元素,使得元素形成嚴格遞減和遞增序列


假設我們有一個正數陣列;我們必須檢查一個點/專案,直到該專案首先建立嚴格遞減序列,然後是嚴格遞增整數的序列。以下是以下屬性:我們必須記住,序列的最小長度必須為 2

此外,我們已經確保遞減序列的最後一個值是遞增序列的第一個值。

因此,如果輸入類似於 {5, 4, 3, 4},則輸出將為 3,因為 {5, 4, 3} 嚴格遞減,然後 {3, 4} 嚴格遞增。

為了解決這個問題,我們將遵循以下步驟 -

  • increase := 1, decrease := 1
  • n := 陣列大小
  • 對於 i 從 1 到 n,執行
    • 如果 array[i] < array[i-1],則
      • 如果 increase 等於 1,則
        • decrease := decrease + 1
      • 否則,
        • 返回 -1
    • 否則,當 array[i] > array[i-1] 不為零時,則
      • 如果 increase 等於 1,則
        • pt := array[i-1]
      • 如果 decrease >= 2,則
        • increase := increase + 1
      • 否則,
        • 返回 -1
    • 否則,當 array[i] 等於 array[i-1] 時,則
      • 返回 -1
  • 如果 increase >= 2 且 decrease >= 2,則
    • 返回 pt
  • 否則,
    • 返回 -1

示例

讓我們看看以下實現以更好地理解 -

 線上演示

def search_element(array):
   increase = 1
   decrease = 1
   n = len(array)
   for i in range(1, n):
      if(array[i] < array[i-1]):
         if increase == 1:
            decrease = decrease + 1
         else:
            return -1
      elif(array[i] > array[i-1]):
         if increase == 1:
            pt = array[i-1]
         if decrease >= 2:
            increase = increase + 1
         else:
            return -1
      elif(array[i] == array[i-1]):
         return -1
   if(increase >= 2 and decrease >= 2):
      return pt
   else:
      return -1
array = [5,4,3,4]
element = search_element(array)
print(element)

輸入

[5,4,3,4]

輸出

3

更新於: 2020-08-28

574 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.