453. 最小操作次数使数组元素相等
题目:给你一个长度为 n 的整数数组,每次操作将会使 n - 1 个元素增加 1 。返回让数组所有元素相等的最小操作次数。
解题方法1
1、思路:
- 每次操作既可以理解为使 n−1 个元素增加 1,也可以理解使 1 个元素减少 1。显然,后者更利于我们的计算。
- 要计算让数组中所有元素相等的操作数,我们只需要计算将数组中所有元素都减少到数组中元素最小值所需的操作数
2、算法
- 基本类型流求最小值
- 逐个累加每个元素与数组中元素最小值的差
3、java代码
import java.util.Arrays;
class Solution {
public int minMoves(int[] nums) {
//基本类型流:Arrays.stream()中传入一个基本类型的数组进行创建
//求出最大值,并通过流的getAsInt()方法把返回。
//getAsInt()方法:可以获得该流中当前的int值并返回。
int minNum = Arrays.stream(nums).min().getAsInt();
//数组中所有元素都减少到数组中元素最小值所需的操作数
int res = 0;
//逐个累加每个元素与数组中元素最小值的差
for (int num : nums) {
res += num - minNum;
}
return res;
}
}