在 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

更新於:2020-08-19

95 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.