453.最小操作时间使数组对象相等(javascript)453.MinimumMovestoEqualArrayElements
原创给你一个长度 n 整数数组,每个操作将生成。 n - 1 元素增加 1 。返回使数组的所有元素相等的最小操作数。
Given an integer array nums of size n, return the minimum number of moves required to make all array elements equal.
In one move, you can increment n - 1 elements of the array by 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
解决问题的思路:
因为我们只需要找到使数组中所有元素相等的最小操作数,所以我们不需要考虑数组中每个元素的绝对大小,也就是说,当数组中的所有元素相等时,我们不需要真正计算元素的值,我们只需考虑数组中元素的相对大小的变化。
因此,每个操作都可以理解为 n-1 元素增加 1 ,也可以理解为 1 元素减少 1 显然,后者更有利于我们的计算。
var minMoves = function (nums) {
let min = Math.min(...nums)
let sum = 0
for (let i of nums) {
sum += i- min
}
return sum
};
//与上面的代码相比,这相对更好。
var minMoves = function (nums) {
let min = Math.min(...nums)
let len = nums.length
let sum = 0
let i=0
while(i
循环遍历引用: vue 循环对象、数组和字符串。
leetcode: https://leetcode-cn.com/problems/minimum-moves-to-equal-array-elements/
版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除
itfan123



