给定一个长度为 n 的非空整数数组,找到让数组所有元素相等的最小移动次数。每次移动可以使 n - 1 个元素增加 1。
示例:
输入:
[1,2,3]
输出:
3
解释:
只需要3次移动(注意每次移动会增加两个元素的值):
[1,2,3] => [2,3,3] => [3,4,3] => [4,4,4]
方法一:蛮力法。先将数组排序,然后从低向高逐渐使低端元素相等。
比如输入[1,1,8,10,10,6]升序排序得[1,1,6,8,10,10]
index = 1 从[1,1,6,8,10,10]到达[1,1,6,8,10,10],(在此之前花费了0次,nums[1]和nums[0]的间距为0,之前的间距为0,现在间距为0)花费0次(一共花费0次)
index = 2 从[1,1,6,8,10,10]到达[6,6,6,13,15,15],(在此之前花费了0次,nums[2]和nums[1]的间距为5,之前的间距为0,现在间距为5)花费5次(一共花费5次)
index = 3 从[6,6,6,13,15,15]达到[13,13,13,13,22,22],(在此之前花费了5次,nums[3]和nums[2]的间距为2,之前的间距为 5,现在间距为7)花费7次(一共花费12次)
index = 4 从[13,13,13,13,22,22]到达[22,22,22,22,22,33],(在此之前花费了12次,nums[4]和nums[3]的间距为2,之前的间距为7,现在间距为9)花费9次(一共花费21次)
index = 5 从[22,22,22,22,22,33]到达[33,33,33,33,33,33],(在此之前花费了21次,nums[5]和nums[4]的间距为2,之前的间距为9,现在间距为11)花费11次(一共花费32次)
但是我们并不需要修改数组中的所有元素,我们知道地推就行。
class Solution {
<