📅  最后修改于: 2023-12-03 15:06:35.875000             🧑  作者: Mango
在这个问题中,我们需要生成一个长度为N的数组A[],满足arr[i]是由A[i]的倍数组成的最后一个索引。
我们可以通过以下步骤解决这个问题:
以下是Python代码的实现:
def generate_array(arr):
max_val = max(arr)
B = [0] * (max_val + 1)
for val in arr:
B[val] += 1
for i in range(1, max_val + 1):
B[i] += B[i-1]
A = [0] * len(arr)
for i, val in enumerate(arr):
A[i] = B[val] - 1
B[val] -= 1
return A
这个函数将输入一个数组arr[],并且返回一个长度为N的数组A[],其中每个元素A[i]都是arr[i]的倍数的最后一个索引。