您的位置:首页 > 编程语言 > Java开发

[leetcode 453]Minimum Moves to Equal Array Elements

2016-11-10 17:47 597 查看
Given a non-empty integer array of size n, find the minimum number of moves required to make all array elements equal, where a move is incrementing n - 1 elements by 1.

Example:

Input:
[1,2,3]

Output:
3

Explanation:
Only three moves are needed (remember each move increments two elements):

[1,2,3]  =>  [2,3,3]  =>  [3,4,3]  =>  [4,4,4]

public class Solution {
public static  int minMoves(int[] nums) {
int res  = 0;
Arrays.sort(nums);
int len = nums.length;
int min = nums[0];
int tmp = len -1;
int sum = 0;
while(tmp > 0){
int t = Math.abs(nums[tmp] - min);
res += t;
min += t;
sum += t;
nums[--tmp] += sum;

}
return res;
}
}


更多leetcode题解:更多leetcode题解查看
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息