1907. 数组游戏
描述
给定一个整数数组,清算出的让所有元素相同的最小步数。每一步你可以选择一个元素,使得其他元素全部+1。
- 1 <= len(arr) <= 105
- 0 <= arri <= 109
样例 1:
输入:
[3, 4, 6, 6, 3]
输出:
7
说明:
[3, 4, 6, 6, 3] -> [4, 5, 7, 6, 4] -> [5, 6, 7, 7, 5] -> [6, 7, 8, 7, 6] -> [7, 8, 8, 8, 7] -> [8, 9, 9, 8, 8] -> [9, 9, 10, 9, 9] -> [10, 10, 10, 10, 10]
分析
选一个数,其他数字+1,在缩短差距上,就是相当于选一个数-1。
题解
public class Solution {
/**
* @param arr: the array
* @return: determine the number of moves to make all elements equals
*/
public long arrayGame(int[] arr) {
// write your code here
// 取得最小值
int min = Integer.MAX_VALUE;
for (int a : arr) {
min = Math.min(min, a);
}
long ret = 0;
for (int a : arr) {
// 差异
ret += a - min;
}
return ret;
}
}
最后说两句
非常感谢你阅读本文章,如果你觉得本文对你有所帮助,请留下你的足迹,点个赞,留个言,多谢~
作者水平有限,如果文章内容有不准确的地方,请指正。
希望小伙伴们都能每天进步一点点。
声明
本文由二当家的白帽子博客原创,转载请注明来源,谢谢~