📜  按除以X的数组元素的商的非降序打印索引(1)

📅  最后修改于: 2023-12-03 15:10:09.821000             🧑  作者: Mango

按除以X的数组元素的商的非降序打印索引

简介

在一个数组中,对每个元素除以给定的X,我们获得一个商 数组。我们需要按照商数组的非降序打印元素的原始 索引。

实现方案

我们可以使用一个字典来存储商以及与其关联的索引。 然后我们可以将商数组按照非降序排序,并打印与商 绑定的索引。

代码实现
def printIndices(arr, X):
    # 创建一个空字典用于存储商和索引。
    hashMap = {}
    for i, num in enumerate(arr):
        # 获得商。
        quotient = num // X
        if quotient in hashMap:
            # 添加当前的索引。
            hashMap[quotient].append(i)
        else:
            hashMap[quotient] = [i]
    # 获取商数组并进行排序。
    quotientArr = sorted(hashMap.keys())
    # 打印非降序索引。
    for quotient in quotientArr:
        for index in hashMap[quotient]:
            print(index)
示例
输入
arr = [8, 12, 10, 5, 15, 20]
X = 3
printIndices(arr, X)
输出
3
0
1
2
4
5
解释

商数组为 [1, 4, 3, 1, 5, 6]。按照非降序打印原始 索引为 [3, 0, 1, 2, 4, 5]。