在 Python 中查詢執行給定操作後最後一個被降為零的索引
假設我們有一個包含 n 個數字的陣列 A 和另一個輸入 K,我們需要找到在執行給定操作後最後一個被降為零的索引。操作解釋如下:
從 A[0] 到 A[N – 1],將每個元素更新為 A[i] = A[i] – K。現在,如果 A[i] < K,則將 A[i] 設定為 0,並且一旦 A[i] 為 0,則不再對其進行操作。
我們需要重複此操作,直到所有元素都降為 0。並返回最後一個變為零的索引。
操作 3 - A = {0, 0, 0, 0, 0, 0}
為了解決這個問題,我們將遵循以下步驟:
n := A 的大小
idx := -1
對於 i 從 0 到 n,執行
A[i] :=(A[i] + k - 1) / k
對於 i 從 0 到 n,執行
如果 A[i] >= x,則
x := A[i]
idx := i
返回 idx
示例
讓我們看看以下實現以獲得更好的理解:
def search_index(A, k): n = len(A) idx = -1 x = -10**9 for i in range(n): A[i] = (A[i] + k - 1) // k for i in range(n): if (A[i] >= x): x = A[i] idx = i return idx arr = [4, 3, 6, 8, 3, 10] K = 4 print(search_index(arr, K))
輸入
[4, 3, 6, 8, 3, 10], 4
輸出
5
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP