📌  相关文章
📜  使所有数组元素相等所需的除法计数最小化 2(1)

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

使所有数组元素相等所需的除法计数最小化

问题描述

给定一个长度为 n 的整数数组,你的任务是找到让所有数组元素相等所需的最小除法次数,其中除法操作的定义为将一个元素除以另一个元素,结果向下取整。

例如:[2, 8, 10] 中,数组元素之间的除法操作次数最少为 3,我们可以将 8 除以 2 得到 4,再将 10 除以 4 得到 2。

思路分析

本题解法较为简单,我们可以先找到数组中最小值 minNum ,然后遍历数组,计算每个元素与 minNum 的比值,最后将所有比值相加即为所需的最小除法次数。

代码实现
def minOperations(nums: List[int]) -> int:
    minNum = min(nums)
    res = 0
    for n in nums:
        res += n // minNum
    return res
复杂度分析

时间复杂度:O(n),遍历数组一次

空间复杂度:O(1),只需要常数级别的空间