1.题目

给定一个长度为 n非空 整数数组,每次操作将会使 n - 1 个元素增加 1。找出让数组所有元素相等的最小操作次数。

示例:

  1. 输入:
  2. [1,2,3]
  3. 输出:
  4. 3
  5. 解释:
  6. 只需要3次操作(注意每次操作会增加两个元素的值):
  7. [1,2,3] => [2,3,3] => [3,4,3] => [4,4,4]

2.思路

第一个思路就是排序,然后最大减最小,得到值的和就是要操作的次数

  1. public int minMoves(int[] nums) {
  2. Arrays.sort(nums);
  3. int count = 0;
  4. for (int i = nums.length - 1; i > 0; i--) {
  5. count += nums[i] - nums[0];
  6. }
  7. return count;
  8. }