在 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
- 如果 increase 等於 1,則
- 否則,當 array[i] > array[i-1] 不為零時,則
- 如果 increase 等於 1,則
- pt := array[i-1]
- 如果 decrease >= 2,則
- increase := increase + 1
- 否則,
- 返回 -1
- 如果 increase 等於 1,則
- 否則,當 array[i] 等於 array[i-1] 時,則
- 返回 -1
- 如果 array[i] < array[i-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
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP