使用 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
廣告