LeetCode:数组的改变、移动(453 最小移动次数使数组相等)

it2023-10-10  65

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

示例:

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

思路:

每次移动使得(n-1)个元素增加1等价于使得1个元素-1所以只需要用所有的数和最小的数进行比较然后统计次数即可 class Solution { public int minMoves(int[] nums) { Arrays.sort(nums); int count = 0; for(int i = 0;i<nums.length;i++){ count += nums[i]-nums[0]; } return count; } }

题目链接

最新回复(0)