📅  最后修改于: 2023-12-03 15:07:37.172000             🧑  作者: Mango
问题描述:给定一个整数数组arr,你可以对其中任意一个数执行任意次数的加操作。 问最少几次操作使得arr中的所有元素相等。
解题思路:假设加最少的次数为x,那么最后arr中的所有元素都会变为x + min,其中min为arr中的最小值。 因为x越小,arr中每个元素与x的差值就越小,对应的加操作次数也越少。 因此,x的值为arr中所有元素与最小值的差值之和。
代码实现:
def min_increment(arr):
"""
:param arr: List[int]
:return: int
"""
min_val = min(arr)
res = 0
for num in arr:
res += num - min_val
return res
时间复杂度:O(n)
空间复杂度:O(1)
以上就是如何在Array中完成的最小增量使得arr[i]可以使所有其他元素相等的介绍和代码实现。