美文网首页快乐写代码
T453、最小移动次数使数组元素相等

T453、最小移动次数使数组元素相等

作者: 上行彩虹人 | 来源:发表于2020-05-08 10:49 被阅读0次

给定一个长度为 n 的非空整数数组,找到让数组所有元素相等的最小移动次数。每次移动将会使 n - 1 个元素增加 1。
示例:
输入:
[1,2,3]
输出:
3
解释:
只需要3次移动(注意每次移动会增加两个元素的值):
[1,2,3] => [2,3,3] => [3,4,3] => [4,4,4]

每次移动一个数对其它所有数加1,相当于该数本身减1。所以问题可以转化为将数组中的所有数值需要减去多少,才能使所有值都为最小数。

    public int minMoves(int[] nums) {
        int min_num = Arrays.stream(nums).min().getAsInt();
        int res = 0;
        for(int i = 0; i < nums.length; i++)
            res += (nums[i]-min_num);
        return res;
    }

相关文章

网友评论

    本文标题:T453、最小移动次数使数组元素相等

    本文链接:https://www.haomeiwen.com/subject/qlwxnhtx.html