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

给定一个长度为 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;
    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。