(Java) LeetCode 453. Minimum Moves to Equal Array Elements —— 最小移动次数使数组元素相等
2018-08-07 21:34
573 查看
Given a non-empty integer array of size n, find the minimum number of moves required to make all array elements equal, where a move is incrementing n - 1 elements by 1.
Example:
Input: [1,2,3] Output: 3 Explanation: Only three moves are needed (remember each move increments two elements): [1,2,3] => [2,3,3] => [3,4,3] => [4,4,4]
觉得和“算法”知识无关的简单题反而有点难度啊……首先固定了每次都要使得n-1个元素+1,那么这n-1个一定是最小的n-1个,否则就会越加越多。每次都找最小的n-1个去加,直到所有的数相等。换个角度,就等于每次找到最大的那个数使得其-1,直到最大和最小的数相等。最终,所有比最小的那个数大的数,都要变成最小的数。所以,结果就是求所有数与最小数差的和。即,所有数的和与最小数与数组长度乘积的差。本题就是个逻辑推理和数学式的简化。感觉算法有的时候就是数学竞赛啊……
Java
class Solution { public int minMoves(int[] nums) { int min = nums[0], sum = 0; for (int num : nums) { if (num < min) min = num; sum += num; } return sum - nums.length * min; } }
相关文章推荐
- (Java) LeetCode 462. Minimum Moves to Equal Array Elements II —— 最少移动次数使数组元素相等 II
- [LeetCode] Minimum Moves to Equal Array Elements II 最少移动次数使数组元素相等之二
- [LeetCode] Minimum Moves to Equal Array Elements 最少移动次数使数组元素相等
- [LeetCode]453. Minimum Moves to Equal Array Elements(最少移动直到数组元素相等)
- leetcode 453. Minimum Moves to Equal Array Elements 换一个角度分析解决问题 + 寻找最小值
- Leetcode 453. Minimum Moves to Equal Array Elements 使数组相等 解题报告
- leetcode 453. Minimum Moves to Equal Array Elements(C语言,又是一招出奇制胜)46
- leetcode 453. Minimum Moves to Equal Array Elements
- [leetcode]: 453. Minimum Moves to Equal Array Elements
- LeetCode_453. Minimum Moves to Equal Array Elements
- [LeetCode]453. Minimum Moves to Equal Array Elements
- Leetcode 462. Minimum Moves to Equal Array Elements II 使数组相等 解题报告
- LeetCode 453. Minimum Moves to Equal Array Elements
- LeetCode-453. Minimum Moves to Equal Array Elements
- [LeetCode]Minimum Moves to Equal Array Elements(Java)
- LeetCode 453. Minimum Moves to Equal Array Elements
- LeetCode 453. Minimum Moves to Equal Array Elements
- [Leetcode] 453. Minimum Moves to Equal Array Elements 解题报告
- Leetcode453. Minimum Moves to Equal Array Elements
- LeetCode 453. Minimum Moves to Equal Array Elements