[LeetCode] 453. 最小操作次数使数组元素相等(Java)
1.题目描述
给你一个长度为 n
的整数数组,每次操作将会使 n - 1
个元素增加 1
。返回让数组所有元素相等的最小操作次数。
示例 1:输入:nums = [1,2,3]
输出:3
解释:
只需要3次操作(注意每次操作会增加两个元素的值):
[1,2,3] => [2,3,3] => [3,4,3] => [4,4,4]
示例 2:输入:nums = [1,1,1]
输出:0
2.解题思路
题目说每次将会使n-1
个元素增加1
,逆向思考,其实就相当于把1
个元素减少1
让数组相等.我的思路是先排序,然后遍历,每次都把元素都与排序好的数组首元素想减,所有次数相加就是答案.
3.解法
class Solution {public int minMoves(int[] nums) {int time = 0;Arrays.sort(nums);for (int num : nums){time += num - nums[0];}return time;}
}
4.技能点
无