LeetCode答题记录453. 最小移动次数使数组元素相等

给定一个长度为 n 的非空整数数组,找到让数组所有元素相等的最小移动次数。每次移动可以使 n - 1 个元素增加 1。
输入:
[1,2,3]
输出:
3
解释:
只需要3次移动(注意每次移动会增加两个元素的值):
[1,2,3] => [2,3,3] => [3,4,3] => [4,4,4]

解法:n-1个元素+1,相当于1个元素-1。找出最小的数,所有数减去最小数的和即为答案。
本题也可以只用一次循环得到结果,有心人可以尝试

func minMoves(_ nums: [Int]) -> Int {
    var minNum: Int = nums.first!
    for value in nums {
        if value < minNum {
            minNum = value
        }
    }
    var moveCount = 0
    for value in nums {
        moveCount += value - minNum
    }
    return moveCount
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. 关于诊断X线机准直器的作用,错误的是()。 (6.0 分) A. 显示照射野 B. 显示中心线 C. 屏蔽多...
    我们村我最帅阅读 10,848评论 0 5
  • 201. M-Q型显影液组合是()。 (2.0 分) A. 米吐尔与菲尼酮的组合 B. 对苯二酚和菲尼酮的组合 C...
    我们村我最帅阅读 3,705评论 0 4
  • “断舍离”来自一本书名,大概内容是: 身边的杂物越堆越多,却怎么都丢不掉,因为“舍不得”、“好可惜”; 不断地买新...
    李沐珊阅读 1,080评论 3 3
  • 伟嘉拖着疲倦的身体回到家,把自己跌倒沙发上,一只脚翘在茶几上,家里凌乱不堪,茶几,电视柜和角桌上都是灰,地上的灰尘...
    伟嘉豪阅读 766评论 2 4
  • 司令啊阅读 109评论 0 0