在 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
广告