使用 Python 求解让数组元素相等的最小移动次数
假设我们有一个非空整数数组,我们必须找出使数组元素全部相等所需的最小移动次数,其中移动是指将选定的元素增加或减少 1。因此,当数组为 [1, 2, 3] 时,输出应为 2,因为 1 将增加到 2,3 将减少到 2。
要解决这个问题,我们将按照如下步骤进行操作 −
- 对数组 nums 进行排序
- 将计数器设置为 0
- 对于 nums 中的 i,执行
- counter := counter + (i – nums[nums 的长度 / 2] 的绝对值)
- 返回计数器
示例(Python)
让我们看看以下实现以更好地理解 −
class Solution: def minMoves2(self, nums): nums.sort() counter = 0 for i in nums: counter += abs(i-nums[len(nums)//2]) return counter ob1 = Solution() print(ob1.minMoves2([2,5,3,4]))
输入
[2,5,3,4]
输出
4
广告