📅  最后修改于: 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),只需要常数级别的空间