1. 程式人生 > 其它 >【力扣 091】462. 最少移動次數使陣列元素相等 II

【力扣 091】462. 最少移動次數使陣列元素相等 II

462. 最少移動次數使陣列元素相等 II、

給你一個長度為 n 的整數陣列 nums ,返回使所有陣列元素相等需要的最少移動數。

在一步操作中,你可以使陣列中的一個元素加 1 或者減 1 。

示例 1:

輸入:nums = [1,2,3]
輸出:2
解釋:
只需要兩步操作(每步操作指南使一個元素加 1 或減 1):
[1,2,3]  =>  [2,2,3]  =>  [2,2,2]
示例 2:

輸入:nums = [1,10,2,9]
輸出:16

來源:力扣(LeetCode)
連結:https://leetcode.cn/problems/minimum-moves-to-equal-array-elements-ii
著作權歸領釦網路所有。商業轉載請聯絡官方授權,非商業轉載請註明出處。

程式碼實現:

class Solution {
    public:
    int minMoves2(vector<int>& nums) {
        sort(nums.begin(), nums.end());
        const int N = nums.size();
        int mid = nums[N / 2];
        int res = 0;
        for (int n : nums) {
            res += abs(n - mid);
        }
        return res;
    }
};